如何刪除空數組元素
從 $linksArray 陣列中刪除空元素的程式碼未按預期工作。這是因為 unset($link) 僅刪除變數 $link 的引用,而不是陣列中的元素本身。
empty() 函數也不起作用,因為它檢查變數是否為空,不是陣列元素。
要從陣列中刪除空元素,可以使用 array_filter() 函數。 array_filter() 接受一個陣列和一個回呼函數作為參數。回呼函數應用於陣列的每個元素,如果回呼函數傳回 false,則該元素將從陣列中刪除。
在您的情況下,您可以使用以下程式碼從 $linksArray中刪除空元素:
$linksArray = array_filter($linksArray);
但是,如果您需要保留精確字串「0」的元素,則需要自訂回調:
// PHP 7.4 and later print_r(array_filter($linksArray, fn($value) => !is_null($value) && $value !== '')); // PHP 5.3 and later print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; })); // PHP < 5.3 print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));
注意:如果刪除空元素後需要重新索引數組,請使用:
$linksArray = array_values(array_filter($linksArray));
以上是如何有效地從 PHP 陣列中刪除空元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!