如何删除空数组元素
从 $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中文网其他相关文章!