dspym82000 2016-06-01 17:43 采纳率: 100%
浏览 88
已采纳

搜索php多维数组并检索键值

I have this $order array and want to store the data in a mysql database.

I need to sort out the products ([type] => physical) and put the key values in one mysql table, and put the other types ([type] => discount and [type] => shipping_fee) in two other tables.

[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
                )

        )
)

Something like this, but I don't know how to properly search the array and retrive the sibling key values:

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
}
  • 写回答

2条回答 默认 最新

  • duanjue9889 2016-06-01 17:56
    关注

    Here's one way using a switch to determine table names:

    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']})";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件