Bor*_*rja 1 php arrays multidimensional-array
我有这个多维数组:
$array48= array(
array("2017-06-30-104",1498858541000,39.3322,-122.9027,2.11,0,"U",36)
);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
Array (
[0] => Array (
[0] => 2017-06-30-104
[1] => 1498858541000
[2] => 39.3322
[3] => -122.9027
[4] => 2.11
[5] => 0
[6] => U
[7] => 36
)
)
Run Code Online (Sandbox Code Playgroud)
我想移到$array48[0][0]最后,我这样做:
function id_fine($array_disordinato){
$number= count($array_disordinato);
for($a= 0; $a < $number; $a++){
$element= $array_disordinato[$a][0];
unset($array_disordinato[$a][0]);
array_push($array_disordinato[$a],$element);
}
return $array_disordinato;
}
id_fine($array48);
Run Code Online (Sandbox Code Playgroud)
有效,但我不明白为什么OUTPUT是:
Array (
[0] => Array (
[1] => 1498858541000
[2] => 39.3322
[3] => -122.9027
[4] => 2.11
[5] => 0
[6] => U
[7] => 36
[8] => 2017-06-30-104
)
)
Run Code Online (Sandbox Code Playgroud)
每个元素的位置都是错误的.它应该是:
Array (
[0] => Array (
[0] => 1498858541000
[1] => 39.3322
[2] => -122.9027
[3] => 2.11
[4] => 0
[5] => U
[6] => 36
[7] => 2017-06-30-104
)
)
Run Code Online (Sandbox Code Playgroud)
我建议你使用array_shift你的第一个到最后一个:
array_push($array48[0], array_shift($array48[0]));
Run Code Online (Sandbox Code Playgroud)
或使用:
$array48[0][]= array_shift($array48[0]);
Run Code Online (Sandbox Code Playgroud)
感谢Andreas的评论!
单衬里可以做你想要的:
Array
(
[0] => Array
(
[0] => 1498858541000
[1] => 39.3322
[2] => -122.9027
[3] => 2.11
[4] => 0
[5] => U
[6] => 36
[7] => 2017-06-30-104
)
)
Run Code Online (Sandbox Code Playgroud)
因此,无需复杂的功能id_fine与unset再array_values
来自DOCS:
array_shift()将数组的第一个值移开并返回它,将数组缩短一个元素并将所有内容向下移动.将修改所有数值数组键以从零开始计数,而不会触及文字键.