Ich habe dieses mehrdimensionale Array:ein Element eines Arrays von Anfang bis Ende
$array48= array(
array("2017-06-30-104",1498858541000,39.3322,-122.9027,2.11,0,"U",36)
);
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
)
)
ich will $array48[0][0]
bis zum Ende bewegen, und ich tue dies:
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);
funktioniert, aber ich verstehe nicht, warum die Ausgabe lautet:
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
)
)
Die Position jedes Elements ist falsch. Es sollte sein:
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
)
)
Die Schlüssel in einem numerisch Index Array persistent sind ebenso in einem assoziativen Array. Wenn Sie einen löschen, ist er weg, bis er erneut gesetzt wird. Wenn Sie ein _dynamisch_ indiziertes Array wünschen, schauen Sie sich die Funktion 'array_values ()' an. – arkascha
Sie 'unset ($ array_disordinato [$ a] [0]); ', erinnern Sie sich? ['unset()'] (http://php.net/manual/en/function.unset.php) entfernt nur den Wert, es indiziert das Array nicht neu; Es weiß nicht einmal, dass der Wert, den Sie in einem Array angeben wollten, nicht gesetzt war, und es wäre auch egal, weil es nicht seine Aufgabe ist, sich um Arrays zu kümmern. ['array_push()'] (http://php.net/manual/en/function.array-push.php) führt auch keine Neuindizierung des Arrays durch. Es findet nur den größten numerischen Schlüssel, inkrementiert ihn und speichert den Wert dort. – axiac