2014-02-06 2 views
-1

Я вытягивать массив из базы данных, и это выглядит так:Форматирование массива в PHP

Array 
(
    [0] => Array 
     (
      [tracker_id] => 28 
      [tracking_numbers] => hdkshwuy47937892hd 
     ) 

    [1] => Array 
     (
      [tracker_id] => 28 
      [tracking_numbers] => 797825464411 
     ) 

) 

Мне нужно переформатировать его выглядеть следующим образом:

Array 
(
    [0] => Array 
     (
      [tracker_id] => 28 
      [tracking_numbers] => Array 
       (
        [0] => hdkshwuy47937892hd 
        [1] => 797825464411 
       ) 
     ) 

) 

Я могу» t найти правильный поиск в массиве или ключах для создания массива чисел для единственного идентификатора трекера.

ответ

0

попробовать этот

$arr_output = array(); 
foreach($arr_input as $arr) 
{ 
    $tracker_id = $arr['tracker_id']; 
    $tracking_numbers = $arr['tracking_numbers']; 

    $arr_output[$traker_id][] = $tracking_numbers; 
} 

print_r($arr_output); 

UPDATE 2:

$arr_output = array(); 
$arr_output1 = array(); 
foreach($arr_input as $arr) 
{ 
    $tracker_id = $arr['tracker_id']; 
    $tracking_numbers = $arr['tracking_numbers']; 

    $arr_output[$traker_id][] = $tracking_numbers; 
} 
$i=0; 
foreach($arr_output as $key=>$value) 
{ 
    $arr_output1[$i]['tracker_id']=$key 
    $arr_output1[$i]['tracking_numbers']=$value 
    $i+=1; 
} 

print_r($arr_output1); 
+0

Почти. Но это устанавливает ключ массива в tracker_id, и это не совсем правильно. Позвольте мне попробовать ваше обновление. –

+0

@VinceKronlein вы пробовали мое обновление –

2

Использование array_column() для < PHP V5.5

<?php 
    $a=array 
    (array 
     ('tracker_id' => 28, 
       'tracking_numbers'=> "hdkshwuy47937892hd" 
      ), 

     array('tracker_id' => 28, 
       'tracking_numbers' => "797825464411", 
      )); 

    $a[0]['tracking_numbers']=array_column($a,"tracking_numbers"); 
    unset($a[1]); 
    print_r($a); 

Demo

+0

+1 для короткого кода! –

+0

К сожалению, сервер, на котором мой клиент включен, не является 5.5 –

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