2016-09-07 5 views
-5

У меня есть следующий массив. Я пытаюсь сгруппировать это.Группировка в массиве

Array 
    (
    [0] => Array 
    (
     [Title] => HoMedics MAN-300 
     [ean] => 31262006288 
     [upc] => 31262006288 
     [ProductImageName] => 
     [CdnUri] => 
     [ASIN] => B000050FEU 
     [ListPrice] => 129.99 
     [Status] => 2 
     [ActualPrice] => 129.99 
     [ProductID] => 5286728 
    ) 

) 

Я хочу, чтобы сгруппировать в этой

Array 
(
[0] => Array 
    (
     [VitalInfo]=>array(
      [Title] => HoMedics MAN-300 
      [ean] => 31262006288 
      [upc] => 31262006288 
      [ProductImageName] => 
      [CdnUri] => 
      [ASIN] => B000050FEU 
     ) 
     [Price]=>array(
      [ListPrice] => 129.99 
      [Status] => 2 
      [ActualPrice] => 129.99 
      [ProductID] => 5286728 
     ) 
    ) 

Я пытался, но это не происходит, как я хочу ... любая помощь будет большим ... Thanx заранее ..

+2

Что до сих пор пытались? Пожалуйста, добавьте свой код в вопрос. –

ответ

1

попробовать это, КОД:

foreach($old_array as $key_old => $val_old) 
{ 
    foreach($val_old as $key => $val) 
    { 
     if(in_array($key, $VitalInfo_array)) 
     { 
      $new_array[$key_old]['VitalInfo'][$key] = $val; 
     } 
     else 
     { 
      $new_array[$key_old]['Price'][$key] = $val; 
     } 
    } 
} 

ВЫВОД :

Array 
(
    [0] => Array 
     (
      [VitalInfo] => Array 
       (
        [Title] => HoMedics MAN-300 
        [ean] => 31262006288 
        [upc] => 31262006288 
        [ProductImageName] => 
        [CdnUri] => 
        [ASIN] => B000050FEU 
       ) 

      [Price] => Array 
       (
        [ListPrice] => 129.99 
        [Status] => 2 
        [ActualPrice] => 129.99 
        [ProductID] => 5286728 
       ) 

     ) 

) 

DEMO

я надеюсь, что это будет полезно.

1

Просто пройдите через свой массив и соответствующим образом настройте новый массив.

Предполагая, что $ массива является исходным массивом, а $ результата является заказным массивом, попробуйте следующее:

foreach ($array as $k => $arr) { 

    $result[$k]['VitalInfo'] = array(
     'Title'   => $arr['Title'], 
     'ean'    => $arr['ean'], 
     'upc'    => $arr['upc'], 
     'ProductImageName' => $arr['ProductImageName'], 
     'CdnUri'   => $arr['CdnUri'], 
     'ASIN'    => $arr['ASIN'] 
    ); 

    $result[$k]['Price'] = array(
     'ListPrice' => $arr['ListPrice'], 
     'Status'  => $arr['Status'], 
     'ActualPrice' => $arr['ActualPrice'], 
     'ProductID' => $arr['ProductID']   
    ); 

} 
0

Если вы группируете это в php, взгляните на these answers.

Или просто скопировать это:

$input = [0 => [ 
    'Title' => 'HoMedics MAN-300', 
    'ean' => 31262006288, 
    'upc' => 31262006288, 
    'ProductImageName' => '', 
    'CdnUri' => '', 
    'ASIN' => 'B000050FEU', 
    'ListPrice' => 129.99, 
    'Status' => 2, 
    'ActualPrice' => 129.99, 
    'ProductID' => 5286728 
]]; 
foreach ($input as $in){ 
    $out['VitalInfo'] = []; 
    $out['Price'] = []; 
    foreach ($in as $key => $i){ 
     if (in_array($key, ['Title', 'ean', 'upc', 'ProductImageName', 'CdnUri', 'Asin'])){ 
      $out['VitalInfo'][] = [$key => $i]; 
     } else { 
      $out['Price'][] = [$key => $i]; 
     } 
    } 
    $output[]=$out; 
} 
echo '<pre>'; 
var_dump($output); 
0

Вход: $ Информация // Ваш исходный массив Ouput: $ finalArr // Ваш Требуемый массив

$vitalInfo = array ('Title','ean','upc','ProductImageName','CdnUri','ASIN'); 
$price = array ('ListPrice','Status','ActualPrice','ProductId');  
$finalArr = array(); 

foreach ($info as $arr) { 
    $result = array(); 
    foreach($arr as $k => $v){ 
     if(in_array($k,$vitalInfo)) 
      $result['VitalInfo'][$k] = $v; 
     else if(in_array($k,$price)) 
      $result['Price'][$k] = $v; 
    } 
    $finalArr[] = $result; 
} 
Смежные вопросы