【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に保存できなくなる)、削除は必ず最後に行う。