从多维数组中删除元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从多维数组中删除元素相关的知识,希望对你有一定的参考价值。

嗨,我有一些问题从多维数组中取消整行。我有一个采用以下格式的数组

Array
(
    [0] => Array
        (
            [ID] => 10000
            [Date] => 21/11/2013
            [Total] => 10
        )
    [1] => Array
        (
            [ID] => 10001
            [Date] => 21/12/2013
            [Total] => abc
        )
    ...
)

我正在循环此数组以检查Total是否仅包含数字或句点。

foreach($this->csvData as &$item) {
    foreach($item as $key => $value) {
        if($key === 'Total') {
            $res = preg_replace("/[^0-9.]/", "", $item[$key] );
            if(strlen($res) == 0) {
                unset($item[$key]);
            } else {
                $item[$key] = $res;
            }
        }
    }
}

所以你可以从我的数组中看到,第二个元素Total包含abc,因此应该删除它所在的整个元素。目前,凭借我所拥有的,我只会删除该元素

[1] => Array
        (
            [ID] => 10001
            [Date] => 21/12/2013
        )

如何删除整个元素?

谢谢

答案

试试这个:

//Add key for outer array (no longer need to pass-by-reference)
foreach($this->csvData as $dataKey => $item) {
    foreach($item as $key => $value) {
        if($key === 'Total') {
            $res = preg_replace("/[^0-9.]/", "", $item[$key] );
            if(strlen($res) == 0) {
                // Unset the key for this item in the outer array
                unset($this->csvData[$dataKey]);
            } else {
                $item[$key] = $res;
            }
        }
    }
}

以上是关于从多维数组中删除元素的主要内容,如果未能解决你的问题,请参考以下文章

根据值从多维数组中删除元素

如何删除多维字符串数组中的空元素?

从javascript中的多维数组中删除一列

从多维数组中提取特定元素

如何删除多维数组中的唯一元素?

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串