368 votes

PHP ajouter un tableau à l’autre (pas d’array_push ou +)

Comment faire pour ajouter un tableau à l’autre sans comparer leurs clés ?

À la fin, il devrait être : `` si j’utiliser quelque chose comme [] ou array_push, il causera un de ces résultats :

Il devrait juste être quelque chose, faire cela, mais d’une façon plus élégante :

546voto

netcoder Points 31874

array_merge est la manière élégante:

$a = array('a', 'b');
$b = array('c', 'd');
$merge = array_merge($a, $b); 
// $merge is now equals to array('a','b','c','d');

Faire quelque chose comme:

$merge = $a + $b;
// $merge now equals array('a','b')

Ne fonctionnera pas, parce que l' + opérateur ne fait pas les fusionner. Si ils $a a les mêmes touches qu' $b, il ne fera rien.

40voto

Mark Baker Points 90240

Pourquoi ne pas l'utiliser

$appended = array_merge($a,$b); 

Pourquoi ne voulez-vous pas l'utiliser, le corriger, intégré dans la méthode.

28voto

SenseException Points 136

C'est un assez vieux post, mais je tiens à ajouter quelque chose sur l'ajout d'un tableau à l'autre:

Si

  • un ou deux tableaux ont associatif clés
  • les clés des deux tableaux n'ont pas d'importance

vous pouvez utiliser les fonctions de tableau comme ceci:

array_merge(array_values($array), array_values($appendArray));

array_merge ne pas fusionner les touches numériques de sorte qu'il ajoute toutes les valeurs de $appendArray. Tout en utilisant les fonctions natives de php au lieu d'un foreach de la boucle, il devrait être plus rapide sur les tableaux avec beaucoup d'éléments.

20voto

<?php
// Example 1 [Merging associative arrays. When two or more arrays have same key
// then the last array key value overrides the others one]

$array1 = array("a" => "JAVA", "b" => "ASP");
$array2 = array("c" => "C", "b" => "PHP");
echo " <br> Example 1 Output: <br>";
print_r(array_merge($array1,$array2));

// Example 2 [When you want to merge arrays having integer keys and
//want to reset integer keys to start from 0 then use array_merge() function]

$array3 =array(5 => "CSS",6 => "CSS3");
$array4 =array(8 => "JAVASCRIPT",9 => "HTML");
echo " <br> Example 2 Output: <br>";
print_r(array_merge($array3,$array4));

// Example 3 [When you want to merge arrays having integer keys and
// want to retain integer keys as it is then use PLUS (+) operator to merge arrays]

$array5 =array(5 => "CSS",6 => "CSS3");
$array6 =array(8 => "JAVASCRIPT",9 => "HTML");
echo " <br> Example 3 Output: <br>";
print_r($array5+$array6);

// Example 4 [When single array pass to array_merge having integer keys
// then the array return by array_merge have integer keys starting from 0]

$array7 =array(3 => "CSS",4 => "CSS3");
echo " <br> Example 4 Output: <br>";
print_r(array_merge($array7));
?>

Sortie:

Example 1 Output:
Array
(
[a] => JAVA
[b] => PHP
[c] => C
)

Example 2 Output:
Array
(
[0] => CSS
[1] => CSS3
[2] => JAVASCRIPT
[3] => HTML
)

Example 3 Output:
Array
(
[5] => CSS
[6] => CSS3
[8] => JAVASCRIPT
[9] => HTML
)

Example 4 Output:
Array
(
[0] => CSS
[1] => CSS3
)

Code Source De Référence

-3voto

Piskvor Points 46986

Comment à ce sujet:

$appended = $a + $b;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X