回答受付が終了しました
PHPのarray_mapで、関数にスコープ外の変数を渡せませんか!? 目的は$usersを$new_usersにすることなんですけど、 $users = [ // 元のデータ
PHPのarray_mapで、関数にスコープ外の変数を渡せませんか!? 目的は$usersを$new_usersにすることなんですけど、 $users = [ // 元のデータ ['name'=>'a'], ['name'=>'b'] ]; $new_users = [ // 目的のデータ ['name'=>'a','new'=>1], ['name'=>'b','new'=>1] ]; このために以下array_mapを使っているのですが、$dataが参照できなくてエラーになってしまうんです <?php $users = [ // 元のデータ ['name'=>'a'], ['name'=>'b'] ]; $data = ['new' =>1]; // 追加するデータ $new_users = array_map( function($user){ // 目的のデータ return array_merge($user, ['new'=>$data['new']] ); // 参照できなくてエラー }, $users ); var_dump($new_users); // 確認 ちなみに$dataは決まった値じゃないので、 return array_merge($user, ['new'=>1] ); というのはできません つまりarray_map内で$dataを参照しなくちゃいけない感じなんですけど、無理でしょうか?
PHP・197閲覧・25