2015-09-03 3 views
-1

J'ai deux tableaux multidimensionnels (mais pour simplifier, disons simplement qu'ils sont de dimension unique), je dois les fusionner en un seul, mais en alternant les éléments. Le premier tableau est plus grand, et j'ai besoin d'un second tableau pour être fusionné dans chaque troisième élément.Les tableaux alternatifs fusionnent tous les trois éléments

À titre d'exemple:

$array1 = array("Hello", "Bonjour", "Hola", "Ciao", "Привет", "Hallo","Nihao"); 
$array2 = array("World", "Monde", "Mundo"); 

Et je veux le tableau final à ressembler si

["Hello", "Bonjour", "World", "Hola", "Ciao", "Monde", "Привет", "Hallo", "Mundo", "Nihao"] 

S'il y a beaucoup plus d'éléments dans le premier tableau, il devrait juste continuer à ajouter eux, peu importe si le second tableau a laissé ou non.

Comment est-ce que je ferais cela?

+0

Postez vos tentatives. Qu'est-ce que vous avez essayé jusqu'à présent? –

Répondre

2

Dans votre exemple, le troisième élément de array2 est inséré après le troisième élément de array1, en premier et second sont insérés après le second.

En supposant que c'était une erreur; et $ array1 est toujours assez grand; vous pouvez utiliser quelque chose comme ceci:

$i=2; while($v = array_shift($array2)) 
{ 
    array_splice($array1, $i, 0, [$v]); 
    $i+=3; 
} 
+0

Merci! On dirait que ça fonctionne. Supprimez simplement les '' '' '[' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '$ v'' Il jette une erreur. – kernelpanic

+0

Vous utilisez probablement une ancienne version de PHP (ne supportant pas la syntaxe []). Mais tu as raison; il est facultatif de créer le tableau si c'est juste un élément; http://php.net/array_splice –