【问题标题】:How to remove an item from a nested array in PHP?如何从 PHP 中的嵌套数组中删除项目?
【发布时间】:2018-04-21 08:26:17
【问题描述】:

我有一个复杂的嵌套数组,我想删除所有具有特定 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
    )

非常感谢您的帮助。

【问题讨论】:

  • @MohammadTomaraei:可能对你来说这两个是一样的,但对我这个初学者来说,它们完全不同!
  • @MohammadTomaraei:我不明白反对票。这似乎是一个合理的问题。对我来说,这是一个问题,我在谷歌中没有找到任何与我的问题相匹配的正确答案,那么我错过了什么让这个问题被否决了?不打架,只是好奇。和平。
  • @MohammadTomaraei:就因为像你这样聪明的人太容易了,就应该投反对票!?

标签: php arrays


【解决方案1】:

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

例如:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多