2013-03-06 6 views
-1

У меня есть следующий массив. (Выход var_dump) Я хочу объединить те же самые ключевые элементы в один массив. Как мне это сделать?создание нового массива с объединением одинаковых ключей

array (size=3) 
     'totals' => 
     array (size=3) 
      0 => 
      array (size=1) 
       'total' => string '4' (length=1) 
      1 => 
      array (size=1) 
       'total' => string '50' (length=2) 
      2 => 
      array (size=1) 
       'total' => string '44' (length=2) 
     'styles' => 
     array (size=3) 
      0 => 
      array (size=1) 
       'style' => string '11' (length=2) 
      1 => 
      array (size=1) 
       'style' => string 'aaa' (length=3) 
      2 => 
      array (size=1) 
       'style' => string 'bb' (length=3) 
     'colors' => 
     array (size=3) 
      0 => 
      array (size=1) 
       'color' => string '11' (length=2) 
      1 => 
      array (size=1) 
       'color' => string 'ccc' (length=3) 
      2 => 
      array (size=1) 
       'color' => string 'ddd' (length=3) 

Конечный результат должен быть как,

 'totals' => 
     array (size=3) 
      0 => 
      array (size=1) 
       'total' => string '4' (length=1) 
       'style' => string '11' (length=2) 
       'color' => string '11' (length=2) 

    'styles' => 
     array (size=3) 
      1 => 
      array (size=1) 
       'total' => string '50' (length=2) 
       'style' => string 'aaa' (length=3) 
       'color' => string 'bb' (length=3) 

     'colors' => 
     array (size=3) 
      2 => 
      array (size=1) 
       'total' => string '44' (length=2) 
       'style' => string 'ccc' (length=3) 
       'color' => string 'ddd' (length=3) 
+3

Просьба уточнить. Покажите свой ожидаемый результат. –

+0

Я отредактировал вопрос. Пожалуйста, помогите. – Namal

ответ

1

Try это:

ПРИМЕЧАНИЕ: Это не поддерживает ключ => становится числовым массивом, но выполняет функции.

 $array = array("total"=>array(array("total"=>1),array("total"=>2),array("total"=>3)), 
       "styles"=>array(array("style"=>4),array("style"=>52),array("style"=>6)), 
       "colors"=>array(array("color"=>7),array("color"=>8),array("color"=>9)) 

); 
array_unshift($array, null); 
$res = call_user_func_array('array_map', $array); 

echo "<pre>"; 
print_r($res); 

выход:

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [total] => 1 
       ) 

      [1] => Array 
       (
        [style] => 4 
       ) 

      [2] => Array 
       (
        [color] => 7 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [total] => 2 
       ) 

      [1] => Array 
       (
        [style] => 52 
       ) 

      [2] => Array 
       (
        [color] => 8 
       ) 

     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [total] => 3 
       ) 

      [1] => Array 
       (
        [style] => 6 
       ) 

      [2] => Array 
       (
        [color] => 9 
       ) 

     ) 

) 
+0

Пожалуйста, проверьте этот код :) –

+0

Спасибо, муш Бендра ... Ты спас меня много времени ... :) – Namal

0

Может быть, эта работа

for ($j=0; $j < count($your_array) ; $j++) { 

     for ($k=0; $k < count($your_array[0]) ; $k++) { 
      if(!isset($sum[$k])) 
      { 
       $sum[$k]=0; 
      }else{ 
       $sum[$k]=$sum[$k]+$your_array[$j][$k]; 
      } 
     } 
    } 

так же ключ wilbe комбината, где когда-либо размер на нем :)

+0

nop ........ :( – Namal

Смежные вопросы