【问题标题】:unset array using a variable in PHP [duplicate]使用PHP中的变量取消设置数组[重复]
【发布时间】:2017-10-17 09:15:39
【问题描述】:

这是我的数组的一个示例:

 Array

    (
        [productId] => 7740792
        [productCode] => 1019534
        [productPrice] => Array
            (
                [current] => Array
                    (
                        [value] => 150
                        [text] => £150.00
                    )

                [previous] => Array
                    (
                        [value] => 0
                        [text] => £0.00
                    )

                [rrp] => Array
                    (
                        [value] => 0
                        [text] => £0.00
                    )

                [xrp] => Array
                    (
                        [value] => 150
                        [text] => £150.00
                    )

                [currency] => GBP
                [isMarkedDown] => 
                [isOutletPrice] => 
            )

        [variants] => Array
            (
                [0] => Array
                    (
                        [variantId] => 7740915
                        [sku] => 5784194
                        [isInStock] => 1
                        [isLowInStock] => 1
                        [price] => Array
                            (
                                [current] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [previous] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [rrp] => Array
                                    (
                                        [value] => 0
                                        [text] => £0.00
                                    )

                                [xrp] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [currency] => GBP
                                [isMarkedDown] => 
                                [isOutletPrice] => 
                            )

                    )

                [1] => Array
                    (
                        [variantId] => 7740906
                        [sku] => 5784195
                        [isInStock] => 1
                        [isLowInStock] => 
                        [price] => Array
                            (
                                [current] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [previous] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [rrp] => Array
                                    (
                                        [value] => 0
                                        [text] => £0.00
                                    )

                                [xrp] => Array
                                    (
                                        [value] => 150
                                        [text] => £150.00
                                    )

                                [currency] => GBP
                                [isMarkedDown] => 
                                [isOutletPrice] => 
                            )

                    )

我想从整个数组中删除/取消设置“productPrice”、“sku”和“price”。 到目前为止我已经使用了这个:

unset($alldata[0]['variants'][0]['price']);
unset($alldata[0]['variants'][1]['price']);

但是数组会发生变化并且有数千个条目,因此像这样对未设置进行编码并不容易。我是 PHP 新手,我已经尽我所能搜索了数组函数,但没有找到合适的东西。

【问题讨论】:

    标签: php multidimensional-array unset


    【解决方案1】:
    unset ($alldata['productPrice']);
    
    foreach ($alldata['variants'] as $key => $value) {
        unset (
            $alldata['variants'][$key]['price'], 
            $alldata['variants'][$key]['sku']
        );
    }
    

    【讨论】:

    • 感谢您的帮助,我忘了提到我从 foreach 获取 $alldata 数组。您的代码有效,但仅在 foreach 之外。有什么理由它不能在 foreach 中工作?
    • 您能详细说明一下吗?我不确定你的意思。
    • 我只是个白痴,现在可以工作了,谢谢 :)
    猜你喜欢
    • 2020-05-28
    • 2017-05-22
    • 2011-08-22
    • 2014-09-29
    • 2017-09-12
    • 2011-03-12
    • 2012-06-17
    • 2012-04-08
    • 2011-02-06
    相关资源
    最近更新 更多