2017-03-09 43 views
0

我想知道一个数组,如果我可以在两个或更多个不同阵列区分阵列元件等我有一个阵列$product_options创建与来自阵列中的PHP相同的元件

$product_options: [ 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "10", 
     "value_title": "Red", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "11", 
     "value_title": "Green", 
     "price": "13.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "7", 
     "value_title": "S", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "8", 
     "value_title": "M", 
     "price": "13.0000" 
    } 
    ] 

所以上面的阵列中的我四具有两个相同元素的元素。我想将这两个相同的元素分成两个数组。 所需的输出:

$product_options:[ 
[{ 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "10", 
     "value_title": "Red", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "4", 
     "title": "Color", 
     "value_id": "11", 
     "value_title": "Green", 
     "price": "13.0000" 
    }], 
[{ 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "7", 
     "value_title": "S", 
     "price": "12.0000" 
    }, 
    { 
     "option_id": "3", 
     "title": "Size", 
     "value_id": "8", 
     "value_title": "M", 
     "price": "13.0000" 
    }] 
] 

P.S我的代码是JSON格式,但我的查询是唯一的PHP。

+0

更新您与所需的输出 –

+0

问题需要你的问题多一些解释。 – prudhvi259

+1

这个看起来不像PHP。更像JSON或其他东西。 – akond

回答

0

试试这个

$data = array(); 
    foreach($product_options as $key => $value) { 
     if(!key_exists($value["option_id"], $data)) { 
      $data[$value["option_id"]] = array($value); 
     } 
     else { 
      $array = $data[$value["option_id"]]; 
      $array[] = $value; 
      $data[$value["option_id"]] = $array; 
     } 
    } 
    print_r($data); 

    $final = array(); 
    foreach($data as $key => $value) { 
    $final[] = $value; 
} 
echo json_encode($final); 
0
$groupedProductOptions = []; 

foreach($product_options as $productOption) { 
    $optionId = $productOption->option_id; 

    if (!array_key_exists($optionId)) { 
     $result[$optionId] = []; 
    } 

    $groupedProductOptions[$optionId][] = $productOption; 
} 
+1

尽管此代码片段可能会解决问题,[包括解释](http://meta.stackexchange.com/questions/114762 /解释完全基于代码的答案)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – DimaSan