多次元配列の検索と更新

私はここですべての記事を検索し、必要なことを行う正しい方法を見つけることができないようです。

私は個々の注文を介して、dbから引き出された製品の多次元配列を持っています。

$products = array ();

$i = count ($products);

foreach ($orders as $order):
$res = mysql_query ("SELECT * FROM orders_products AS op LEFT JOIN orders_products_attributes AS opa ON op.orders_products_id = opa.orders_products_id WHERE op.orders_id = '$order'");
while ($row = mysql_fetch_array ($res)):
    $products[$i] = array (
        "model"     => $row['products_model'],
        "name"      => $row['products_name'],
        "option"    => $row['products_options_values'] ?  $row['products_options_values'] : "N/A",
        "qty"       => (int)$row['products_quantity']
    );
    $i++;
endwhile;
endforeach;

一部の製品には、色やボックスサイズなどの複数のオプションがあります。

オプションに応じて各製品のエントリを含む新しい配列を作成し、オプションが既存の製品配列と同じである量を更新する必要があります。

これは私がしようとしているものですが、私はそれを正しいものにすることはできません。

$items = array ();

$j = count ($items);

foreach ($products as $product):
      $exists = searchSubArray ($items, "model", $product['model']);
      if ($exists and ($exists['option'] == $product['option'])):
       //no matter what I do here I get either all the products, or
       //products without new quantities
      else:
        $items[$j] = array (
        "model" => $product['model'],
        "name" => $product['name'],
        "option" => $product['option'],
        "qty" => $product['qty']
        );
      endif;
$j++;
endforeach;

そしてここに私が見つけたsearchSubArray関数は、これに対する答えを探しています。

function searchSubArray (Array $array, $key, $value) {   
    foreach ($array as $subarray): 
        if (isset ($subarray[$key]) && $subarray[$key] == $value)
          return $subarray;       
    endforeach;
}

どのように私はこれを実装するかもしれないかについての任意の提案?

1
@ inf3moまあまあ、それはCREロードのバージョンのための、おそらく歴史的に最悪のショッピングカート、私はdbの設計を支配していないだけで注文を満たすチームの生産性を助けるために既存のデータを引き出そうとしている。
追加された 著者 Vince Kronlein,
それは話題にはならないかもしれませんが、私はあなたに "Map and Reduce"アルゴリズム(PHPの実装もあります)を見てみることをお勧めします。簡単に検索することができます。
追加された 著者 Stan,
「一部の製品には、色やボックスサイズなどの複数のオプションがあります。 - なぜ列とテーブルを作成しないのですか?私は悪い設計データベースの臭いを...
追加された 著者 inf3rno,

答えはありません

0
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com