return 如何从 array_map PHP 开始工作
How return is working from array_map PHP
我是 PHP 的新手,但我知道一旦 PHP 在函数中点击 return
,它将退出函数并且 return到它被调用的地方。
我对以下函数的方式或原因感到困惑 array_map()
以 return
开头并在函数内部有另一个函数。
function array_plucked($toPluck, $arr) {
return array_map(function($item) use($toPluck) {
return $item[$toPluck];
}, $arr); }
此外,每次遍历数组时 $item[$toPluck]
到底发生了什么,结果存储在哪里?
好问题!好的,让我们稍微清理一下:
function array_pluck($key, $array)
{
return array_map(function ($item) use ($key) {
return $item[$key];
}, $array);
}
这样比较容易理解
首先,此函数的目标是 return 一个 来自多维数组的特定键 值的一维数组。以下是示例:
$testArray = array(
array("xxx" => "hello", "yyy" => "goodbye"),
array("xxx" => "hi", "yyy" => "bye"),
array("xxx" => "hey", "yyy" => "peace"),
);
php > var_dump(array_pluck('xxx', $testArray));
array(3) {
[0]=>
string(5) "hello"
[1]=>
string(2) "hi"
[2]=>
string(3) "hey"
}
php > var_dump(array_pluck('yyy', $testArray));
array(3) {
[0]=>
string(7) "goodbye"
[1]=>
string(3) "bye"
[2]=>
string(5) "peace"
}
php >
如您所见,对于父数组中的每个数组,这分别是 returning $testArray[<index>]['xxx']
和 $testArray[<index>]['yyy']
。
现在解释一下 return
是怎么回事。 array_map()
function takes a function (or "Callable")作为第一个参数,一个数组作为第二个参数。函数是对数组中的每个元素运行,然后array_map()
加上return该函数的值到 array_map()
returns.
的新数组
这叫做 anonymous function:
function ($item) use ($key) {
return $item[$key];
}
它就像任何其他函数一样,除了它没有名称,而且它有 use (...)
语法。 use ($key)
表示从外部函数 (array_pluck()
) 到 "import" $key
,因此它可以在这个匿名函数内部使用。上例中 $testArray
的每个元素都作为 $item
传递给此匿名函数。当 return $item[$key]
发生时,只有匿名函数 returns(退出),array_map()
继续到下一个元素。
我是 PHP 的新手,但我知道一旦 PHP 在函数中点击 return
,它将退出函数并且 return到它被调用的地方。
我对以下函数的方式或原因感到困惑 array_map()
以 return
开头并在函数内部有另一个函数。
function array_plucked($toPluck, $arr) {
return array_map(function($item) use($toPluck) {
return $item[$toPluck];
}, $arr); }
此外,每次遍历数组时 $item[$toPluck]
到底发生了什么,结果存储在哪里?
好问题!好的,让我们稍微清理一下:
function array_pluck($key, $array)
{
return array_map(function ($item) use ($key) {
return $item[$key];
}, $array);
}
这样比较容易理解
首先,此函数的目标是 return 一个 来自多维数组的特定键 值的一维数组。以下是示例:
$testArray = array(
array("xxx" => "hello", "yyy" => "goodbye"),
array("xxx" => "hi", "yyy" => "bye"),
array("xxx" => "hey", "yyy" => "peace"),
);
php > var_dump(array_pluck('xxx', $testArray));
array(3) {
[0]=>
string(5) "hello"
[1]=>
string(2) "hi"
[2]=>
string(3) "hey"
}
php > var_dump(array_pluck('yyy', $testArray));
array(3) {
[0]=>
string(7) "goodbye"
[1]=>
string(3) "bye"
[2]=>
string(5) "peace"
}
php >
如您所见,对于父数组中的每个数组,这分别是 returning $testArray[<index>]['xxx']
和 $testArray[<index>]['yyy']
。
现在解释一下 return
是怎么回事。 array_map()
function takes a function (or "Callable")作为第一个参数,一个数组作为第二个参数。函数是对数组中的每个元素运行,然后array_map()
加上return该函数的值到 array_map()
returns.
这叫做 anonymous function:
function ($item) use ($key) {
return $item[$key];
}
它就像任何其他函数一样,除了它没有名称,而且它有 use (...)
语法。 use ($key)
表示从外部函数 (array_pluck()
) 到 "import" $key
,因此它可以在这个匿名函数内部使用。上例中 $testArray
的每个元素都作为 $item
传递给此匿名函数。当 return $item[$key]
发生时,只有匿名函数 returns(退出),array_map()
继续到下一个元素。