私はここですべての記事を検索し、必要なことを行う正しい方法を見つけることができないようです。
私は個々の注文を介して、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;
}
どのように私はこれを実装するかもしれないかについての任意の提案?