Php 有没有办法让array_column()保留$input数组键?
假设我有一个记录数组,由某个ID键入,我使用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' =>
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;
)()