Gibt es eine native PHP-Funktion, um zwei Arrays zip zusammenzuführen?PHP: array_merge() in alternativer Reihenfolge (zip-Reihenfolge)?
Schauen Sie sich das folgende Beispiel:
$a = array("a","b","c");
$b = array("d","e","f");
$c = array("g","h","i");
var_dump(array_merge($a,$b,$c));
Dies erzeugt:
array(9) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
[5]=>
string(1) "f"
[6]=>
string(1) "g"
[7]=>
string(1) "h"
[8]=>
string(1) "i"
}
aber ich will:
array(9) {
[0]=>
string(1) "a"
[1]=>
string(1) "d"
[2]=>
string(1) "g"
[3]=>
string(1) "b"
[4]=>
string(1) "e"
[5]=>
string(1) "h"
[6]=>
string(1) "c"
[7]=>
string(1) "f"
[8]=>
string(1) "i"
}
Therfore schrieb ich mein eigenes - eine Arbeits getestet - Funktion:
function array_zip(...$arrays) {
$res = array();
while(true) {
$check_finish = true;
foreach($arrays as $array) {
if(!empty($array)) {
$check_finish = false;
}
}
if($check_finish) {
break;
} else {
foreach($arrays as $key => $array) {
if(!empty($array)) {
array_push($res,array_shift($array));
$arrays[$key] = $array;
}
}
}
}
return $res;
}
Gibt es jedoch eine native PHP-Funktion, um solche Arrays zusammenzufassen (vielleicht leistungsfähiger)? Und gibt es zu diesem Zweck eine native PHP-Funktion, die Schlüssel beibehält, aber die Reihenfolge beibehält? Nicht gefunden: -/
Ein netter kleiner Einzeiler für Sie: 'var_dump (array_merge (... array_map (null, ... [$ a, $ b, $ c]))); 'erfordert PHP> = 5.6.0 –
Siehe: http://Stackoverflow.com/q/797251/3933332 für einige Ideen – Rizier123
Dank @MarkBaker Ich habe eine Antwort von diesem gemacht. – Blackbam