【发布时间】:2023-04-09 14:43:01
【问题描述】:
我有一个多维索引数组。每个元素都是一个关联数组,其中有一个 id 列,该列在元素之间是唯一的(其值在数组中永远不会重复)。
[indexed] =>Array
(
[0] => Array
(
[id] => john
[name] => John
[age] => 29
),
[1] => Array
(
[id] => peter
[name] => Peter
[age] => 30
),
[2] => Array
(
[id] => harry
[name] => Harry
[age] => 19
)
)
我的目标是将这个数组转换成一个多维关联数组,由id 值索引。
[indexed] =>Array
(
[john] => Array
(
[id] => john
[name] => John
[age] => 29
),
[peter] => Array
(
[id] => peter
[name] => Peter
[age] => 30
),
[harry] => Array
(
[id] => harry
[name] => Harry
[age] => 19
)
)
到目前为止,我最好的尝试是遍历数组元素并手动创建最终数组。
$associative = array();
foreach($indexed as $key=>$val) $associative[$val['id']] = $val;
我认为这不是最优雅的解决方案。使用内置(更高效)的功能是否可以获得相同的结果?
【问题讨论】:
-
我认为在 PHP 中没有内置函数可以用数组中的特定值覆盖 Key。如果数组数量不是很大,那么这个解决方案就可以了。否则使用处理速度快的 XML 或 JSON
-
@MangeshSathe 声明不正确。看我的回答。
标签: php arrays multidimensional-array