假设我有一个这样的数组:
$arr = array(0 => '', 1 => '', 2 => 'abc', 3 => '', 4 => '', 5 => 'def', 6 => '');
我想要一个函数,它将从数组中删除空值,直到它达到任何非空值。所以在这个例子中,结果将是:
array(0 => 'abc', 1 => '', 2 => '', 3 => 'def', 4 => '');
我可以创建自己的函数,但问题是.. PHP已经有了实现这一点的东西吗?是否有一种简单的方法可以尽可能少地使用资源?
索引关联并不重要。事实上,我更喜欢它重置
感谢。
答案 0 :(得分:2)
我会建议这样的事情:
while($arr && !$arr[0]) array_shift($arr);
没有内置功能来执行此操作。
答案 1 :(得分:0)
对于那些想要对PHP的数组功能进行一点扩展的人来说,这是我发现有用的另外两个函数。
/**
* @abstract Removes empty elements from the left side of the array until it hits a value.
* @param array $array The array.
* @return array|boolean Returns the modified array on success, otherwise false.
*/
function array_filter_left($array) {
if (!is_array($array))
return false;
while ($array && !$array[0])
array_shift($array);
return $array;
}
/**
* @abstract Removes empty elements from the right side of the array until it hits a value.
* @param array $array The array.
* @return array|boolean Returns the modified array on success, otherwise false.
*/
function array_filter_right($array) {
if (!is_array($array))
return false;
while ($array && !$array[sizeof($array) - 1])
array_pop($array);
return $array;
}