按照:
https://wiki.php.net/rfc/array_column
When a corresponding indexKey cannot be found, the value will be keyed with an integer, starting from zero.
RFC中使用的示例:
$mismatchedColumns = array(
array(
'a' => 'foo',
'b' => 'bar',
'e' => 'baz'
),
array(
'a' => 'qux',
'c' => 'quux',
'd' => 'corge'
),
array(
'a' => 'grault',
'b' => 'garply',
'e' => 'waldo'
),
);
$foo = array_column($mismatchedColumns, 'a', 'b');
结果$foo等于:
Array
(
[bar] => foo
[0] => qux
[garply] => grault
)
实质上,a处的值变为新的数组值,b成为关键.当原始数组不包含键b时,它会创建一个0索引并使用它.如果有多个密钥不存在,则它们将从0开始递增.
进一步研究它们的例子,它暗示当你无法匹配原始数组中的值时,你根本就得不到数组元素.这意味着如果您在数组中查找单个值并且它不存在,则它将返回一个空数组.
附:我显然从未使用过这个函数,所以大多数都是对RFC的解释.