【发布时间】:2021-05-05 12:18:10
【问题描述】:
我有一个多维数组,我想“重新索引”以使用特定键的值作为索引。结果来自 MySQL 查询。
示例数组:
<php
$array = [
[
'name' => 'Bob',
'age' => 31,
'department' => 'IT'
],
[
'name' => 'Rita',
'age' => 20,
'department' => 'Accounts'
],
[
'name' => 'Sue',
'age' => 19,
'department' => 'Sales'
],
];
我想将其“转换”为以下结果:
<?php
$array = [
'Bob' => [
'name' => 'Bob',
'age' => 31,
'department' => 'IT'
],
'Rita' => [
'name' => 'Rita',
'age' => 20,
'department' => 'Accounts'
],
'Sue' => [
'name' => 'Sue',
'age' => 19,
'department' => 'Sales'
],
];
我希望有一个 php 函数可以轻松地做到这一点,但我还没有找到一个而且我想出的唯一解决方案是循环遍历数组,如果可能的话我想避免这种情况。
有没有办法使用 php 数组函数来做到这一点?
注意:我可以 100% 保证我希望用作索引的字段是唯一的。
【问题讨论】:
-
没有办法避免循环。如果您使用内置 PHP 函数,它们仍将在内部循环数组,因为没有其他方法可以应用转换 - 它必须被遍历。话虽这么说,我不相信存在这种特定功能。
-
不过,您究竟是如何从查询中获取此数组的?您是否正在使用类似一次获取所有行的方法?
-
@AlivetoDie 不过,问题的最后一个注释消除了这种担忧。
-
听起来你可以在从查询中卸载结果集的过程中这样做