2017-10-02 6 views
0

J'ai besoin de fusionner des tableaux différents de façon sécu- relle.Array merge récursif avec un index variable

Disons que j'ai 3 et 2 tableaux dont j'ai besoin de fusionner tous ensemble. Actuellement j'utilise ceci:

$ppjson_data= json_encode(array_merge_recursive($ppposts[0][0],$ppposts[0][1],$ppposts[0][2],$ppposts[1][0],$ppposts[1][1])); 

Cela fonctionne très bien.

Maintenant, le problème est que le nombre de tableaux que je peux avoir besoin de fusionner n'est pas constant. Il y a des tableaux $ x et $ y à fusionner récursivement, alors comment le feriez-vous?

$x=5; 
$y=10; 
for ($i=0;$i<$x+1) { 
    for ($j=0;$j<$y+1) {  
    $ppjson_data=json_encode(array_merge_recursive(...)); 
    } 
} 

Nous vous remercions de votre aide.

Répondre

1

Appel array_merge_recursive avec les sous-réseaux de votre tableau en utilisant des arguments call_user_func_array:

$ppjson_data = json_encode(call_user_func_array('array_merge_recursive', $ppposts)); 

Cela crée un ARRA, en JSON il sera entouré de []. Si vous voulez un objet au lieu {} puis convertion avec (object):

$ppjson_data = json_encode((object)call_user_func_array('array_merge_recursive', $ppposts)); 
+0

presque terminé, mais le résultat JSON commence par « [ » et se termine par « ] ». Des chances d'éviter cela? – Javi

+0

Pas sûr, mais édité. – AbraCadaver

+0

Je préfère le précédent et ensuite: $ ppjson_data = str_replace (array ('[', ']'), '', $ ppjson_data) – Javi