Php 如何在多维数组中重命名匿名密钥
如何在每个数组中将0重命名为['img'],将1重命名为['link'] 试一试:Php 如何在多维数组中重命名匿名密钥,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,如何在每个数组中将0重命名为['img'],将1重命名为['link'] 试一试: array:4 [▼ 0 => array:2 [▼ 0 => "chrysanthemum.jpg" 1 => "http://site.loc/1" ] 1 => array:2 [▼ 0 => "desert.jpg" 1 => "http://site.loc/2" ] 2 => array:2 [▼ 0
array:4 [▼
0 => array:2 [▼
0 => "chrysanthemum.jpg"
1 => "http://site.loc/1"
]
1 => array:2 [▼
0 => "desert.jpg"
1 => "http://site.loc/2"
]
2 => array:2 [▼
0 => "hydrangeas.jpg"
1 => "http://site.loc/3"
]
3 => array:2 [▼
0 => "jellyfish.jpg"
1 => "http://site.loc/4"
]
]
但它不起作用:c
php是否有用于此任务的函数 您需要通过引用访问它,现在您只是更改数据的一个副本,而根本不更改数据
foreach($data as $array){
$array['img']=$array[0];
unset($array[0]);
$array['link']=$array[1];
unset($array[1]);
}
你有两种方法可以做到这一点 第一,仅在参数中输入
&
:
foreach($data as &$array){
$array['img'] = $array[0];
$array['link'] = $array[1];
unset($array[0], $array[1]);
}
这将允许更改$array
另一种方法是使用
数组\u映射
:
foreach($data as &$array){
$array['img']=$array[0];
unset($array[0]);
$array['link']=$array[1];
unset($array[1]);
}
答复:
在这两种情况下。
$keys=['img','link'];array_walk($myArray,function(&$value){$value=array_combine($keys,$value);})代码>
$data = array_map(function($data) {
return [
'img' => $data['0'],
'link' => $data['1']
];
}, $data);
array(4) {
[0]=>
array(2) {
["img"]=>
string(17) "chrysanthemum.jpg"
["link"]=>
string(17) "http://site.loc/1"
}
[1]=>
array(2) {
["img"]=>
string(10) "desert.jpg"
["link"]=>
string(17) "http://site.loc/2"
}
[2]=>
array(2) {
["img"]=>
string(14) "hydrangeas.jpg"
["link"]=>
string(17) "http://site.loc/3"
}
[3]=>
array(2) {
["img"]=>
string(13) "jellyfish.jpg"
["link"]=>
string(17) "http://site.loc/4"
}
}