使用php中的数组创建具有相同元素的数组

使用php中的数组创建具有相同元素的数组,php,arrays,Php,Arrays,我想知道我是否可以区分两个或更多不同数组中的数组元素,就像我有一个数组$product\u options $product_options: [ { "option_id": "4", "title": "Color", "value_id": "10", "value_title": "Red", "price": "12.0000" }, { "option_id": "4", "t

我想知道我是否可以区分两个或更多不同数组中的数组元素,就像我有一个数组
$product\u options

$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"
    }]
]
我的代码是json格式的,但我的查询只使用php。

试试这个

    $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);

用所需的输出更新您的问题需要对您的问题进行更多的解释。这一个看起来根本不像PHP。更像是JSON之类的。这两个注释都是正确的。你应该更好地解释你想要发生什么,这是javascript数组,而不是PHP@我已经用我想要的输出更新了BunkerBoy。我发布的代码是json,但我的问题是php。虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
$groupedProductOptions = [];

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

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

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