数据库查询经常遇到要将二维数组转成一维数组的问题,想知道各位大佬是如何优雅的解决的。目前是这样做的
array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array
array_column() 返回 input 数组中键值为 column_key 的列,
如果指定了可选参数 index_key,那么 input 数组中的这一列的值将作为返回数组中对应值的键。
<?php
// Array representing a possible record set returned from a database
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$first_names = array_column($records, 'first_name', 'id');
print_r($first_names);
?>
以上例程会输出:
Array
(
[2135] => John
[3245] => Sally
[5342] => Jane
[5623] => Peter
)
1
mingmeng 2019-09-16 18:47:28 +08:00 via Android
为啥不考虑优化一下查询。。让出来的只有 id firstname 两个字段呀?是上游拿到的数据?
|
2
Varobjs 2019-09-16 18:55:46 +08:00 via Android
array column
array filter 等等等一大堆函数套着用 经常做同步脚本等功能,数据来源 第三方接口或者数据库。 这已经最优解了,要不你全改 foreach ?或者重写 array* 算法 ,看能不能跑得快点。 |