アンケート一覧ページでアンケートを探す

回答受付が終了しました

PHPのarray_mapで、関数にスコープ外の変数を渡せませんか!? 目的は$usersを$new_usersにすることなんですけど、 $users = [ // 元のデータ

PHP197閲覧xmlns="http://www.w3.org/2000/svg">25

新機能 AI回答テストを実施中! テスト対象カテゴリ:歴史・悩み相談 ※回答がつかない場合は、画面のリロードをお試しください

回答(3件)

> $dataが参照できなくてエラーになってしまう > $new_users = array_map( function($user){ > return array_merge($user, ['new'=>$data['new']] ); > }, $users ); クロージャに外部から変数を与えたいなら useするだけでは? $new_users = array_map(function($user) use ($data) { return array_merge($user, ['new'=>$data['new']] ); }, $users ); 結果は array (size=2) 0 => array (size=2) 'name' => string 'a' (length=1) 'new' => int 1 1 => array (size=2) 'name' => string 'b' (length=1) 'new' => int 1

NEW! この回答はいかがでしたか? リアクションしてみよう

function($user, $data){ // 目的のデータ でいいのでは?

キジ猫さまはそれでエラーにならないのでしょうか?自分はPHP8.0でそれでエラーになるんですが、キジ猫さまはどういうバージョンや環境か教えてもらっていいですか?

この条件で書くとすればこんな感じですかねぇ・・・ $new_users = array_map(function($user, $append) { return array_merge($user, $append); }, $users, array_fill(0, count($users), $data));