Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有办法让array_column()保留$input数组键?_Php_Arrays - Fatal编程技术网

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

Php 有没有办法让array_column()保留$input数组键?,php,arrays,Php,Arrays,假设我有一个记录数组,由某个ID键入,我使用array\u column()函数从每个记录中提取一段数据 $records = array( 1234 => array( 'first_name' => 'John', 'last_name' => 'Doe', ), 4567 => array( 'first_name' => 'Sally', 'last_name' =>

假设我有一个记录数组,由某个ID键入,我使用
array\u column()
函数从每个记录中提取一段数据

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

array\u列($input,'first\u name')
的结果是一个数字索引数组(带有新的键0、1、…)。有没有一种方法可以防止输入数组中的键?

如果数据数组中的id也可用,则可以使用
数组\u列的第三个参数

例如:
array_列($records,'first_name','id')

就(你的确切情况)而言

它大致相当于(PHP 7+):


$newArray=array\u组合(array\u键($records),array\u列($records,'first\u name')可能重复抱歉,我应该说清楚-所需的数据在数组中不可用,只能作为密钥使用。
array_map(function ($r) { return $r['first_name']; }, $records)
(function () use ($records) {
    $result = [];
    foreach ($records as $key => $r) {
        $result[$key] = $r['first_name'];
    }
    return $result;
)()