我有一个像:
这样的数组array(4) {
[0]=>
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "200123130"
["store_reference"]=>
....
[1]
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "20222220"
["store_reference"]=>
...
我想拥有这个数组:
array(4) {
[200123130]=>
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "200123130"
["store_reference"]=>
....
[20222220]
array(34) {
["id"]=>
int(6)
["order_reference"]=>
string(9) "20222220"
["store_reference"]=>
...
这就是我的尝试:
$i = 0;
foreach ($data['data'] as &$key) {
$data['data'][$key['order_reference']] = array_values($data['data'][$i]);
$i++;
}
但是我得到了一个更大的数组,从:
开始array(9) {
[0]=>
&array(34) {
["id"]=>
任何想法如何解决这个问题?
答案 0 :(得分:3)
您可以这样做:
$newarray = array_combine(array_column($orig, "order_reference"), $orig);
array_combine() - 使用一个数组作为键创建数组,另一个数组创建数值
array_column() - 返回输入数组中单个列的值
答案 1 :(得分:1)
您只需使用第三个array_column
参数调用$index_key
即可完成此操作:
$new = array_column($orig, null, 'order_reference');