[英]Search php multidimensional array and retrieve key values
我有這個$ order數組,想將數據存儲在mysql數據庫中。
我需要整理產品( [type] => physical )並將鍵值放在一個mysql表中,並將其他類型( [type] => discount和[type] => shipping_fee )放在另外兩個表中。
[cart] => Array
(
[items] => Array
(
[0] => Array
(
[type] => physical
[name] => Apple iPhone
[quantity] => 2
[reference] => ABC61
[tax_amount] => 329
[unit_price] => 5490
)
[1] => Array
(
[type] => shipping_fee
[name] => FedEx Express
[quantity] => 1
[reference] => SHIPPING
[tax_amount] => 58
[unit_price] => 290
)
[2] => Array
(
[type] => physical
[name] => IBM Laptop
[quantity] => 1
[reference] => XYZ10
[tax_amount] => 700
[unit_price] => 8000
)
[3] => Array
(
[type] => discount
[name] => Discount Coupon
[quantity] => 1
[reference] => DISCOUNT
[tax_amount] => 0
[unit_price] => -650
)
)
)
像這樣,但是我不知道如何正確地搜索數組並檢索同級鍵值:
if ([type] == 'physical') {
get key values for [name] and [quantity] .. insert them into table products
} elseif ([type] == 'shipping_fee') {
get key values for [name] and [quantity] .. insert them into table shipping
} elseif ([type] == 'discount') {
get key values for [name] and [quantity] .. insert them into table discounts
}
這是使用開關確定表名稱的一種方法:
foreach($order['cart']['items'] as $values) {
switch($values['type']) {
case 'physical':
$table = 'products';
break;
case 'shipping_fee':
$table = 'shipping';
break;
case 'discount':
$table = 'discounts';
break;
}
$query = "INSERT INTO $table (name, quantity)
VALUES ({$values['name']}, {$values['quantity']})";
}
這樣的事情怎么樣
$physical = array_filter($cart['items'],function($item){
return $item['type'] == "physical";
});
foreach($physical as $item){
//make your inserts
}
php中的array_filter函數接受一個數組,並為該數組中的每個元素調用一個函數,並為每個評估為true的元素返回一個新數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.