更改多维数组中的内键 php
change inner key in multidimensional array php
我想问一下如何替换多维数组中的内键。
我有一个多维数组:
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
第二个数组是
$array2=array(1,2,3,4,5,6);
我预计新数组是
Array(
[0] => Array
(
[1] => 5000
[2] => 6
[3] => 325
[4] => 3
[5] => 3
[6] => 517000000
)
[1] => Array
(
[1] => 20000
[2] => 5
[3] => 217
[4] => 5
[5] => 3
[6] => 1692000000
))
我已经通过另一个 post PHP Replace multidimensional array keys 尝试了下面的代码,但我无法分配我的 array1
的值
foreach($array2 as $array2 ){
for($k=0;$k<sizeof($array2);$k++){
for($l=0;$l<$count;$l++){
$last[$l][$array2] = $array1[$k][$l];
}
$i += $count;
}
}
谢谢
正如@Rizier 在他的评论中所建议的那样,您可以使用 array_map() 和 array_combine() 来做到这一点。
<?php
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
$array2 = array(1, 2, 3, 4, 5, 6);
foreach($array1 as $arr1){
$array3[] = array_combine($array2, $arr1);
}
var_dump($array3);
输出
array (size=2)
0 =>
array (size=6)
1 => int 5000
2 => int 6
3 => int 325
4 => int 3
5 => int 3
6 => int 517000000
1 =>
array (size=6)
1 => int 20000
2 => int 5
3 => int 217
4 => int 5
5 => int 3
6 => int 1692000000
尝试
<?php
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
$newArray = array();
foreach($array1 as $arr){
array_unshift($arr,'');
unset($arr[0]);
$newArray[] = $arr;
}
print_r($newArray);
这将具有您需要的相同输出。
希望对您有所帮助:)
我想问一下如何替换多维数组中的内键。 我有一个多维数组:
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
第二个数组是
$array2=array(1,2,3,4,5,6);
我预计新数组是
Array(
[0] => Array
(
[1] => 5000
[2] => 6
[3] => 325
[4] => 3
[5] => 3
[6] => 517000000
)
[1] => Array
(
[1] => 20000
[2] => 5
[3] => 217
[4] => 5
[5] => 3
[6] => 1692000000
))
我已经通过另一个 post PHP Replace multidimensional array keys 尝试了下面的代码,但我无法分配我的 array1
的值foreach($array2 as $array2 ){
for($k=0;$k<sizeof($array2);$k++){
for($l=0;$l<$count;$l++){
$last[$l][$array2] = $array1[$k][$l];
}
$i += $count;
}
}
谢谢
正如@Rizier 在他的评论中所建议的那样,您可以使用 array_map() 和 array_combine() 来做到这一点。
<?php
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
$array2 = array(1, 2, 3, 4, 5, 6);
foreach($array1 as $arr1){
$array3[] = array_combine($array2, $arr1);
}
var_dump($array3);
输出
array (size=2)
0 =>
array (size=6)
1 => int 5000
2 => int 6
3 => int 325
4 => int 3
5 => int 3
6 => int 517000000
1 =>
array (size=6)
1 => int 20000
2 => int 5
3 => int 217
4 => int 5
5 => int 3
6 => int 1692000000
尝试
<?php
$array1=
array(array(5000, 6, 325, 3, 3, 517000000),
array( 20000, 5, 217, 5, 3, 1692000000)
);
$newArray = array();
foreach($array1 as $arr){
array_unshift($arr,'');
unset($arr[0]);
$newArray[] = $arr;
}
print_r($newArray);
这将具有您需要的相同输出。 希望对您有所帮助:)