Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP错误。为什么是;变量未定义“;内部数组\u映射?_Php_Arrays_Array Map - Fatal编程技术网

PHP错误。为什么是;变量未定义“;内部数组\u映射?

PHP错误。为什么是;变量未定义“;内部数组\u映射?,php,arrays,array-map,Php,Arrays,Array Map,我正在php应用程序中使用array\u map函数。 我这样定义了array_map函数 $ratingID = $this->db->insert_id(); $rated_item_array = array_map(function ($a) { return $a + array('RatingID' => $ratingID); }, $rated_item_array); Php通知来了 A PHP Error was e

我正在php应用程序中使用
array\u map
函数。 我这样定义了array_map函数

$ratingID =  $this->db->insert_id();

    $rated_item_array = array_map(function ($a) {
        return $a + array('RatingID' => $ratingID);
    }, $rated_item_array);  
Php通知来了

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: ratingID
当我打印
$ratingID
时。我正确打印了值,因此定义了$ratingID。 为什么在
array\u map
函数中未定义? 我的
$rated\u item\u数组

Array
(
    [0] => Array
        (
            [RatingFactorPreferenceID] => 1,
            [PreferenceID] => 45,
            [RatedValue] => 1,
            [CreatedOn] => 1326790338,
            [CreatedBy] => 25
        )

    [1] => Array
        (
            [RatingFactorPreferenceID] => 2,
            [PreferenceID] => 45,
            [RatedValue] => 1,
            [CreatedOn] => 1326790338,
            [CreatedBy] => 25
        )

    [2] => Array
        (
            [RatingFactorPreferenceID] => 3,
            [PreferenceID] => 45,
            [RatedValue] => 1,
            [CreatedOn] => 1326790338,
            [CreatedBy] => 25
        )
)

来自php.net匿名函数文档。“闭包也可以从父作用域继承变量。任何此类变量都必须传递给use language构造。”看看示例#3,在搜索并尝试之后,您的答案真的是最好的!谢谢兄弟:)今天我学习了“使用($ratingID)”。谢谢有时候,从JavaScript中获取PHP中的作用域是很困难的。
$rated_item_array = array_map(
  function ($a) use ($ratingID){ 
    return $a + array('RatingID' => $ratingID ); 
  }, 
  $rated_item_array
);