4

変数があります。$id = 10の中で使用する必要がありarray_walk()ます。以下のように:

$id = 10;
array_walk($profile_items, function(&$a) {
    $count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
    $a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items).exit;

$id内部で変数を使用するarray_walk()と、エラーが表示されます。

メッセージ: 未定義の変数: id

解決策はありますか?

アドバイスをありがとう

4

5 に答える 5

13

use次のキーワードを使用できます。

array_walk($profile_items, function(&$a) use($id) {

それで、

$id = 10;
array_walk($profile_items, function(&$a) use($id) {
    $count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
    $a['selected'] = $id;
});
echo "<pre>";
print_r($profile_items);

参照によって継承するには、アンパサンドを追加します。

array_walk($profile_items, function(&$a) use(&$id) {
于 2016-12-27T06:36:52.000 に答える
0

use like を使用して $id を関数 array_walk に渡すことができます。

  $id = 10;
  array_walk($profile_items, function(&$a) use($id){
  $count = $this->db->where('profile_item_id', $a['id'])->where('cover_type_id', $id)->count_all_results('cover_type_profile_items_link');
 $a['selected'] = $id;
});
echo "<pre>";
 print_r($profile_items).exit;
于 2016-12-27T06:44:18.447 に答える