非常喜欢rtrim()字符串,如何在数组末尾的最后一个非空元素之后删除数组的空元素,同时避免使用for类似的循环并可能使用PHP的数组函数?
我实际上正在寻找最快/最有效/优雅的方式,但如果没有for或类似的循环这是不可能的,或者我错误的"快速/高效/优雅"特别是PHP的数组函数,那么我会更多比开心学习/知道什么是最好的.谢谢.
其他假设:
例如:
Array
(
[0] => ""
[1] => "text"
[2] => "text"
[3] => ""
[4] => "text"
[5] => ""
[6] => ""
[7] => "text"
[8] => ""
[9] => ""
)
Run Code Online (Sandbox Code Playgroud)
最终会成为:
Array
(
[0] => ""
[1] => "text"
[2] => "text"
[3] => ""
[4] => "text"
[5] => ""
[6] => ""
[7] => "text"
)
Run Code Online (Sandbox Code Playgroud)
和
Array
(
[0] => "text"
[1] => "text"
[2] => "text"
[3] => "text"
[4] => "text"
[5] => "text"
[6] => "text"
[7] => ""
[8] => ""
[9] => ""
)
Run Code Online (Sandbox Code Playgroud)
最终会成为:
Array
(
[0] => "text"
[1] => "text"
[2] => "text"
[3] => "text"
[4] => "text"
[5] => "text"
[6] => "text"
)
Run Code Online (Sandbox Code Playgroud)
hak*_*kre 15
就像你在你的问题中写的那样:只要最后一个值是一个空字符串,就把它从数组中删除:
while ("" === end($array))
{
array_pop($array);
}
Run Code Online (Sandbox Code Playgroud)
编辑:我不知道这有多严重,但是为了好玩,我想出了这个没有在用户代码中使用任何循环的东西,但是,在PHP C函数中肯定涉及循环.也许这可以有所作为,不知道,以响应方式享受:
$array = array_slice($array, 0, key(array_reverse(array_diff($array, array("")), 1))+1);
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
array("").键将被保留(这是重要的部分,数组中的键是0-n).