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

时间:2017-11-08 15:16:21

标签: php arrays

我有一个复杂的嵌套数组,我想删除具有特定store_id的所有项目及其子项:
这真的很难,我不知道如何弄明白。

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
    )

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

如果要删除整个数组元素(如果它具有特定的store_id),则只需要遍历数组,检查store_id并删除元素(如果不再需要它)。

E.g:

<?php         
    foreach($data as $key=>$row){
        if($row['store_id'] == 2){
          unset($data[$key]);
        }
    }        
?>

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

答案 1 :(得分:1)

以下是在多维数组中取消设置cart_id的示例。

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