Php 更改数组的内容以提高效率
在我的数组上执行Php 更改数组的内容以提高效率,php,arrays,Php,Arrays,在我的数组上执行打印时,我得到以下输出: Array ( [0] => Array ( [id] => 178 [name] => Briar Price ) [1] => Array ( [id] => 90 [name] => Bradley Kramer ) [2] =
打印时,我得到以下输出:
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成为值名称的键。在数组重新排序时,我总是遇到问题。使用-
您可以使用andPHP函数来完成,而无需应用自定义逻辑
这是你怎么做的
<?php
$keys=array_column($mainarray,'id');
$values=array_column($mainarray,'name');
$finalarray=array_combine($keys,$values);
我会使用array\u 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 = array_column($users, 'name', 'id');
print_r($array);
array_column()要求参数1为数组,字符串givenMy bad!更正了,谢谢:)有点长,但正确!!为什么这么长?这是一行代码,经过格式化和注释,易于阅读。从使用多个数组函数的意义上讲,它没有您的解决方案那么优雅!!山姆回答:几天前。由于某种原因,我尝试这样做时出错了试图从名称空间my\namespace调用函数“array\u column”
@Mentos93尝试在前面添加斜杠:\array\u column(…)
@Saty我不会链接到与4天前完全相同的答案:因为这不会产生OP问题的确切输出。添加斜杠会产生相同的错误,但来自全局名称空间。但没关系,我明白这里发生了什么。虽然所有的答案都是好的,但我会接受这一个作为正确答案。我有一个想法,但如何实现它总是让我困惑。我会从这件事中学习(但也会从其他的事中学习。每个人都有我的投票权)。
$array = array_column($users, 'name', 'id');
print_r($array);