2016-04-11 7 views
1

Ich habe zwei Arrays..Array1 und Array 2. Beide Array enthalten 2 Datensätze.Merge mehrere Array in PHP

Jetzt muss ich sowohl das Array innerhalb eines Arrays verbinden ..

In meinem zweiten Array i unter zwei Felder von U_DATA bin immer.

[totalcharge] => 15 
[RoadTotal] => 15 

Jetzt muss ich diese Felder in der ersten Reihe fusionieren ..

Bitte helfen Sie mir, ich mehrere Arrays fusionieren müssen. Unten ist das Problem:

ich so etwas wie dies versucht haben, ... aber ich kann meine erwartete Ausgabe nicht erreichen ..

$abc = array_merge($content,$modecost); 

**Array 1** 

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 2046 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4361 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 3170 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4670 
       ) 

     ) 

) 


**Array 2** 

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

) 

Letztlich möchte ich es so

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 2046 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4361 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
      [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 3170 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4670 
       ) 

     ) 

) 

aussehen Ausgabe von array_merge_recursive

Ich versuche unten Code, aber verschiedene Ergebnisse, wie ich will ...

$array3 = array_merge_recursive($content, $modecost);   
      echo"<pre>"; print_r($array3); 
      exit(); 

ich will alle U_DATA Felder innerhalb eines Arrays nicht in unterschiedlichen Array ...

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 2046 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4361 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 3170 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4670 
       ) 

     ) 

    [2] => Array 
     (
      [u_data] => Array 
       (
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

    [3] => Array 
     (
      [u_data] => Array 
       (
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

) 
+0

versuchen Sie 'array_merge_recursive' –

+0

Hallo Herr Ich fügte meine Ausgabe von array_merge_recursive in meine Frage ...... aber nicht mein Ergebnis, wie ich will..plz helfen .. –

+0

@testdesk Überprüfen Sie meine Antwort. – Monty

Antwort

1

Verwenden Sie Array_merge_recursive auf die richtige Weise.

$arr1 = array(
      '0' => array(
       'u_data' => array(
        'Mode' => 'Rail', 
        'TotalCost' => 150,), 
       '0' => array(
        'CostSavingRoutes' => 1, 
        'RailCostSaving' => 150, 
        'Costsavingshipments' => 2,), 
       'origin_city' => array(
        'origin_pcode' => 2046,), 
       'dest_city' => array(
        'dest_pcode' => 4361,), 
      ), 
      '1' => array(
       'u_data' => array(
        'Mode' => 'Rail', 
        'TotalCost' => 150,), 
       '0' => array(
        'CostSavingRoutes' => 1, 
        'RailCostSaving' => 150, 
        'Costsavingshipments' => 2,), 
       'origin_city' => array(
        'origin_pcode' => 3170,), 
       'dest_city' => array(
        'dest_pcode' => 4670,), 
      ), 
); 
$arr2 =array(
     '0' => array(
      'u_data' => array(
       'totalcharge' => 15, 
       'RoadTotal' => 15,) 
     ), 
     '1' => array(
      'u_data' => array(
       'totalcharge' => 15, 
       'RoadTotal' => 15,), 
     ) 
); 

for ($i=0; $i < count($arr1); $i++) { 
    $final[] = array_merge_recursive($arr1[$i], $arr2[$i]);  
} 


echo "<pre>".print_r($arr1,1)."</pre>"; 
echo "<pre>".print_r($arr2,1)."</pre>"; 
echo "<pre> Final ---> ".print_r($final,1)."</pre>"; 
+0

Dank Sir ... Code funktioniert gut ... vielen Dank für Ihre Hilfe ..... –

0

Ich dachte array_merge_recursive funktionieren würde, aber es scheint nicht so zu arbeiten.

<?php 
    $array1Entry1 = array(
     'u_data' => array(
      'Mode' => 'Rail', 
      'TotalCost' => 150 
     ) 
    ); 
    $array1Entry2 = array(
     'u_data' => array(
      'Mode' => 'Rail', 
      'TotalCost' => 150 
     ) 
    ); 
    $array2Entry1 = array(
     'u_data' => array(
      'totalcharge' => 15, 
      'RoadTotal' => 15 
     ) 
    ); 
    $array2Entry2 = array(
     'u_data' => array(
      'totalcharge' => 15, 
      'RoadTotal' => 15 
     ) 
    ); 

$array1 = array($array1Entry1, $array1Entry2); 
$array2 = array($array2Entry1, $array2Entry2); 

$mergedArray = array(); 

foreach ($array1 as $key => $values) { 
    $mergedArray[$key] = array_merge_recursive($array1[$key], $array2[$key]); 
} 

Dieser Code gibt diesen Ausgang.

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

     ) 

) 
+0

Hallo Herr, ich fügte meine Ausgabe von array_merge_recursive in meine Frage ...... aber nicht bekommen mein Ergebnis, wie ich will..plz Hilfe .. –

2

Versuchen Sie, diese

$res = Hash::merge($arr1, $arr2); 
+0

@test hi versuchen Sie dies –

+0

Sollte wirklich 'Hash :: merge()' anstelle von 'Set :: merge()' verwenden. – drmonkeyninja

+0

Ja, Sie können dies auch verwenden –

0

diesen Code versuchen, es so viel Zeit in Anspruch nimmt, die Lösung zu finden, aber ich habe es ...

<?php 
$arr1 = array(
      '0' => array('u_data' => array('Mode' => 'Rail','TotalCost' => 150), 
          '0' => array('CostSavingRoutes' => 1,'RailCostSaving' => 150,'Costsavingshipments' => 2), 
          'origin_city' => array('origin_pcode' => 2046), 
          'dest_city' => array('dest_pcode' => 4361), 
      ), 
      '1' => array('u_data' => array('Mode' => 'Rail','TotalCost' => 150), 
         '0' => array('CostSavingRoutes' => 1,'RailCostSaving' => 150,'Costsavingshipments' => 2), 
         'origin_city' => array('origin_pcode' => 3170), 
         'dest_city' => array('dest_pcode' => 4670), 
      ), 
); 
$arr2 =array(
     '0' => array('u_data' => array('totalcharge' => 15,'RoadTotal' => 15)), 
     '1' => array('u_data' => array('totalcharge' => 15,'RoadTotal' => 15)) 
    ); 
$newArray =array();  
foreach($arr1 as $key => $val) 
{ 
    $newArray[] = array_merge_recursive($val,$arr2[$key]); 
} 
echo "<pre>"; print_r($newArray); 
?> 

erhalten Sie folgende Ausgabe:

Array 
(
    [0] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 2046 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4361 
       ) 

     ) 

    [1] => Array 
     (
      [u_data] => Array 
       (
        [Mode] => Rail 
        [TotalCost] => 150 
        [totalcharge] => 15 
        [RoadTotal] => 15 
       ) 

      [0] => Array 
       (
        [CostSavingRoutes] => 1 
        [RailCostSaving] => 150 
        [Costsavingshipments] => 2 
       ) 

      [origin_city] => Array 
       (
        [origin_pcode] => 3170 
       ) 

      [dest_city] => Array 
       (
        [dest_pcode] => 4670 
       ) 

     ) 

)