array_column()中的PHP错误?

时间:2015-10-21 16:46:47

标签: php function

$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);
$first_names = array_column($records, 'first_name', 'last_name');
var_dump($first_names);

PHP输出结果如下:

array(2) { ["Doe"]=> string(5) "Peter" [0]=> string(4) "Jane" } 

John Doe 在哪里?为什么我只能看到3个名字?

1 个答案:

答案 0 :(得分:3)

正如评论中所提到的,array_column的第三个参数是用作索引的关键。在您的数据中,PeterJohn都具有last_name(索引键)的相同值。

这意味着结果数组将是

array(
    "Doe" => "John",
    "Doe" => "Peter",
    0 => "Jane"
)

数组不能包含重复键 - 在本例中为Doe - 所以只保留其中一个值。