2016-07-11 1 views
0

J'ai deux tableaux comme suit.Aplatir le tableau multidimensionnel ne fonctionne pas

$alerts_array=array(1) { 
      [0]=> array(11) { 
          ["CustomAlertsID"]=> int(3) 
          ["CustomAlerts_Name"]=> string(10) "title demo" 
          ["CustomAlerts_PublishDate"]=> string(10) "2016-07-03" 
          ["CustomAlerts_ExpiryDate"]=> string(10) "2016-07-21" 
          } 
      } 
    $singlebtn_array =array(3) { 
     ["button_text0"]=> string(16) "Button Name1only" 
     ["button_text1"]=> string(12) "button name2" 
     ["button_text2"]=> string(16) "button name3_new" 
    } 

J'ai fusionné les deux tableaux en un seul tableau multidimensionnel qui ressemble à la suite

$alerts_array = array_merge($alerts_array,$singlebtn_array); 

array(4) { [0]=> array(11) 
       { ["CustomAlertsID"]=> int(3) 
       ["CustomAlerts_Name"]=> string(10) "title demo" 
       ["CustomAlerts_PublishDate"]=> string(10) "2016-07-03" 
       ["CustomAlerts_ExpiryDate"]=> string(10) "2016-07-21" 
       } 

      [1]=> array(1) 
       { ["button_text0"]=> string(16) "Button Name1only" } 
      [2]=> array(1) 
       { ["button_text1"]=> string(12) "button name2" } 
      [3]=> array(1) { ["button_text2"]=> string(16) "button name3_new" } } 

J'ai besoin les clés et les valeurs dans le nouveau tableau aplaties

J'ai besoin comme ceci:

array(4) { [0]=> array(11) 
    { ["CustomAlertsID"]=> int(3) 
    ["CustomAlerts_Name"]=> string(10) "title demo" 
    ["CustomAlerts_PublishDate"]=> string(10) "2016-07-03" 
    ["CustomAlerts_ExpiryDate"]=> string(10) "2016-07-21" 
    ["button_text0"]=> string(16) "Button Name1only" 
    ["button_text1"]=> string(12) "button name2" 
    ["button_text2"]=> string(16) "button name3_new" }} 

J'ai utilisé le code suivant pour la combinaison.

$newArr = array(); 
foreach ($alerts_array as $key=>$tmp) { 
    $newArr = array_merge($newArr, array_values($tmp)); 
} 

Le $newArr me donne le résultat, mais les clés sont perdues

Répondre

1

fusionner simplement la première [0] clé de votre $alerts_array, comme ceci:

$alerts_array = array_merge($alerts_array[0], $singlebtn_array); 

qui sortie:

array(7) { 
    ["CustomAlertsID"]=> 
    int(3) 
    ["CustomAlerts_Name"]=> 
    string(10) "title demo" 
    ["CustomAlerts_PublishDate"]=> 
    string(10) "2016-07-03" 
    ["CustomAlerts_ExpiryDate"]=> 
    string(10) "2016-07-21" 
    ["button_text0"]=> 
    string(16) "Button Name1only" 
    ["button_text1"]=> 
    string(12) "button name2" 
    ["button_text2"]=> 
    string(16) "button name3_new" 
} 

Voir aussi la démo de travail here.

+0

Cela ne fonctionne pas comme requis pour moi – Techy

+0

Ensuite, s'il vous plaît montrer quelques exemples pertinents/parties de votre code. Cela fait exactement ce que votre question stipule. – Oldskool

+0

Le résultat est le suivant: {["CustomAlertsID"] => int (3) ["CustomAlerts_Name"] => chaîne (10) "title demo" "[" CustomAlerts_PublishDate "] => chaîne (10)" 2016- 07-03 "[" CustomAlerts_ExpiryDate "] => chaîne (10)" 2016-07-21 "[0] => array (1) {[" button_text0 "] => chaîne (16)" Button Name1only "} [1 ] => array (1) {["button_text1"] => chaîne (12) "bouton nom2"} [2] => array (1) {["button_text2"] => chaîne (16) "bouton name3_new"} } – Techy

0

obtenir ce que vous voulez parce que des alertes est un tableau de tableaux:

$alerts_array = array_merge($alerts_array[0],$singlebtn_array); 

Mais avec un tableau de tableaux, vous voudrez probablement une boucle. Je ne sais pas si chacun serait la même chose ou si vous aurez des multiples, mais cela vous aidera.

$alerts_array; //Your array for arrays 
singlebtn_array; //Whatever this is 
$flattened_alerts_singlebtn = array();  

foreach($alerts_array as $alert_array){ 
    //This will be every array in the alerts as your flattened 
    //array with the singlebtn 
    $flattened_alerts_singlebt[] = array_merge($alert_array,$singlebtn_array); 
} 

Vous pouvez ensuite en boucle $flattened_alerts_singlebtn pour obtenir chaque tableau falttened qui pourraient exister.