如何从PHP中的嵌套数组中删除项?

How to remove an item from a nested array in PHP?

我有一个复杂的嵌套数组,我想删除具有特定存储区ID的所有项及其子项:这真的很困难,我不知道怎么弄清楚。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Array
(
[0] => Array
    (
        [cart_id] => 89
        [product_id] => 46
        [store_id] => 2
        [option] => Array
            (
                [0] => Array
                    (
                        [product_option_id] => 92
                        [value] => Aqua
                    )

                [1] => Array
                    (
                        [product_option_id] => 91
                        [value] => 85C
                    )
            )
    )

[1] => Array
    (
        [cart_id] => 90
        [product_id] => 46
        [store_id] => 2
    )

非常感谢你的帮助。


如果你想删除整个数组元素,如果它有一个特定的store_id,你只需要在数组上循环,检查store_id,如果你不想再删除这个元素。

例如。:

1
2
3
4
5
6
7
<?php        
    foreach($data as $key=>$row){
        if($row['store_id'] == 2){
          unset($data[$key]);
        }
    }        
?>

您可以将"2"更改为任何您想要专门删除存储的内容。或者,如果要匹配多个商店,可以更改if以匹配一组ID。


下面是在多维数组中取消设置购物车ID的示例。

1
2
3
4
5
<?php        
    foreach($data as $key=>$row){
          unset($data[$key]['cart_id']);
    }        
?>