2016-09-07 32 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 
     ) 
    ) 

我试过,但它并没有提前发生,因为我想...任何帮助将是巨大的......感谢名单..

+2

有什么到目前为止试过吗?请将您的代码添加到问题中。 –

回答

1

试试这个, CODE

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

输入:$信息//你的原始数组 输出继电器:$ 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; 
}