有没有办法让array_column()保持$ input数组键?

时间:2017-06-20 13:53:03

标签: php arrays

假设我有一个记录数组,用一些ID键入,我使用array_column()从每个记录中提取一个数据。

$records = array(
1234 => array(
    'first_name' => 'John',
    'last_name' => 'Doe',
),
4567 => array(
    'first_name' => 'Sally',
    'last_name' => 'Smith',
),
);

array_columns($ input,'first_name')的结果是一个数字索引数组。有没有办法从输入数组中保留键?

2 个答案:

答案 0 :(得分:1)

array_map(function ($r) { return $r['first_name']; }, $records)

可以(根据您的具体情况)。

或多或少与此等效(PHP 7 +):

(function () use ($records) {
    $result = [];
    foreach ($records as $key => $r) {
        $result[$key] = $r['first_name'];
    }
    return $result;
)()

答案 1 :(得分:0)

当数据数组中的id也可用时,您可以使用array_column的第三个参数。

例如: array_column($records, 'first_name', 'id');