【PHP】jsonからランダムにオブジェクトを取り出し、別のjsonに保存する

取り出し元のjsonファイルを用意(以下data.json)

[
  {
    "id": 1,
    "title": "タイトル1"
  },
  {
    "id": 2,
    "title": "タイトル2"
  },
  {
    "id": 3,
    "title": "タイトル3"
  },
  .
  .
  .
]

保存先のjsonファイルを用意(以下insert.json)

[]

それぞれのファイルを読み込ませる(以下全て同じphpファイルに記述)

//元データファイルの読み込み
$file_path = dirname(__FILE__). '/data.json';
$json_file = file_get_contents($file_path);
$array = json_decode($json_file, true);

//書き込み用ファイルの読み込み
$inst_file_path = dirname(__FILE__). '/insert.json';
$inst_json_file = file_get_contents($inst_file_path);
$inst_array = json_decode($inst_json_file, true);

以下、data.jsonの中身がなくなるまで、オブジェクトをランダムに抜き出してinsert.jsonに保存する。
オブジェクトを重複して保存しないよう、insert.jsonに保存後は、取り出したオブジェクトをdata.jsonから削除する。

//jsonファイルの処理
if(!empty($array)) { //data.json中身がある場合
  //data.jsonからランダムに取得
  $random = array_rand($array, 1);
  //var_dump($array[$random]);

  //insert.jsonに書き込み
  $inst_array[] = $array[$random];
  $inst_json_encode = json_encode($inst_array, JSON_UNESCAPED_UNICODE);
  file_put_contents($inst_file_path, $inst_json_encode, LOCK_EX);

  //ランダム取得したものをdata.jsonから削除する
  unset($array[$random]);
  $json_encode = json_encode($array, JSON_UNESCAPED_UNICODE);
  file_put_contents($file_path, $json_encode, LOCK_EX);

} else { //data.json中身がない場合
  echo 'からっぽ!';
}

insert.jsonに書き込む前にunset($array[$random]);してしまうとエラーになるので(オブジェクトがなくなるのでinsert.jsonに保存できなくなる)、削除は必ず最後に行う。