首頁  >  文章  >  後端開發  >  php怎麼刪除二維數組中的空值對

php怎麼刪除二維數組中的空值對

PHPz
PHPz原創
2023-04-23 17:48:54696瀏覽

在使用PHP開發中,常常會遇到操作數組的需求。數組是一種常見的資料結構,在PHP中也被廣泛應用。二維數組是一種特殊的數組,其元素也是一個數組。在實際開發中,我們有時候需要刪除二維數組中的空值對,這就需要使用一些PHP的數組函數來實現。

一、什麼是二維數組

如果一個數組的元素也是一個數組,那麼這個數組就是一個二維數組。在PHP中,二維數組可以用如下方式定義:

$arr = array(
    array(1,2,3),
    array(4,5,6),
    array(7,8,9)
);

以上程式碼建立了一個包含3個元素的二維數組,每個元素都是一個包含3個元素的一維數組。

二、刪除二維數組中的空值對

在實際開發中,我們有時需要刪除二維數組中的空值對。所謂空值對,就是指數組中某個鍵對應的值為空字串、null、0或沒有值。我們可以使用PHP的各種陣列函數來實現這個目的。

  1. 使用array_filter函數過濾

array_filter函數可以用來過濾數組中所有的空值對,它的第一個參數是需要過濾的數組,第二個參數是一個回調函數,用於對數組中每個元素進行篩選。

function filterEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = filterEmpty($value);
        }
    }

    return array_filter($arr);
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = filterEmpty($arr);
var_dump($arr);

以上程式碼定義了一個filterEmpty函數來過濾二維數組中的空值對,使用了遞歸函數遍歷數組中的每個元素,如果元素本身是數組,則呼叫filterEmpty函數本身繼續進行遍歷。接下來使用array_filter函數來過濾每一個元素,得到不包含空值對的陣列。

  1. 使用array_walk函數

array_walk函數可以迭代陣列中的每個元素,並對其進行特定的操作。我們可以定義一個回呼函數,對每一個元素進行判斷,並刪除其中的空值對。

function walkEmpty(&$value, $key) {
    if(is_array($value)) {
        $value = array_filter($value);
    }

    if(empty($value)) {
        unset($value);
    }
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

array_walk($arr, 'walkEmpty');
var_dump($arr);

以上程式碼定義了一個walkEmpty函數作為回呼函數,使用array_walk函數遍歷$arr數組中的每個元素,並對其進行判斷。如果該元素是數組,則先使用array_filter函數過濾數組中的空值對。接下來判斷該元素是否為空,如果為空則使用unset函數將該元素從陣列中刪除。

  1. 使用foreach迴圈遍歷數組

我們也可以使用foreach迴圈遍歷數組,對其中每個元素進行判斷。

function deleteEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = deleteEmpty($value);
        }

        if(empty($value)) {
            unset($arr[$key]);
        }
    }

    return $arr;
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = deleteEmpty($arr);
var_dump($arr);

以上程式碼定義了一個deleteEmpty函數,使用foreach迴圈遍歷$arr數組中的每個元素,並對其進行判斷。如果該元素是數組,則呼叫deleteEmpty函數會自身繼續進行遍歷。接下來判斷該元素是否為空,如果為空則使用unset函數將該元素從陣列中刪除。

三、總結

二維數組是常見的資料結構,在PHP開發中常會用到。刪除二維數組中的空值對也是常見的操作,上述文章介紹了三種實作方式,分別使用了array_filter函數、 array_walk函數、 foreach迴圈遍歷數組。我們可以根據特定的需求選擇適合自己的方法。

以上是php怎麼刪除二維數組中的空值對的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn