在我的数组上执行print_r
时,我得到以下输出;
Array
(
[0] => Array
(
[id] => 178
[name] => Briar Price
)
[1] => Array
(
[id] => 90
[name] => Bradley Kramer
)
[2] => Array
(
[id] => 508
[name] => Calvin Yang
)
[3] => Array
(
[id] => 457
[name] => Charles Valenzuela
)
... and so on
我怎样才能将数组修改为如下所示;
Array
(
[178] => Briar Price
[90] => Bradley Kramer
[508] => Calvin Yang
[457] => Charles Valenzuela
... and so on
)
我只想使 ID 成为值名称的键。在数组重新排序方面,我总是遇到问题。
将第三个参数传递给array_column
,使其键为
$array = array_column($users, 'name', 'id');
print_r($array);
use foreach() -
$newArr = array();
foreach ($your_array as $key => $val) {
$newArr[$val['id']] = $val['name'];
}
print_r($newArr) // desired output
我会使用array_combine
将新键附加到值
$results = [
['id'=>1,'name'=>'John'],['id'=>2,'name'=>'Jane'],
];
$results = array_combine(
array_column($results,'id'), //use 'id' column as keys
array_column($results,'name') //use 'name' column as values
);
//now $results is [1=>'John', 2=>'Jane']
您可以使用
array_column和array_combine PHP函数来执行此操作,而无需应用自定义逻辑。
这是你如何做到的,
<?php
$keys=array_column($mainarray,'id');
$values=array_column($mainarray,'name');
$finalarray=array_combine($keys,$values);
$finalarray
将是您想要的结果。
array_combine通过使用一个数组作为键,另一个数组作为其值来创建数组。
array_column 返回输入数组中单个列的值。