$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个名字?
答案 0 :(得分:3)
正如评论中所提到的,array_column
的第三个参数是用作索引的关键。在您的数据中,Peter
和John
都具有last_name
(索引键)的相同值。
这意味着结果数组将是:
array(
"Doe" => "John",
"Doe" => "Peter",
0 => "Jane"
)
但数组不能包含重复键 - 在本例中为Doe
- 所以只保留其中一个值。