我想从数组的开头删除元素,但只删除某些值。例如,我想从数组的开头删除所有“1”。
我想要这个数组: 1,1,2,3,2,3,1,4,5
或这个数组: 1,1,1,1,2,3,2,3,1,4,5
成为这个: 2,3,2,3,1,4,5
注意:还有一个“1”,但不重复数组的启动,我需要保留在数组中。只应删除重复的“1”。
一个PHP行,如果可能的话,不包括foreach或其他循环。我知道如何使用循环来做到这一点。我想知道是否存在针对此类问题的另一个单行解决方案。
答案 0 :(得分:0)
这是一个可以完成任务的小辅助函数:
<?php
function recursively_remove_value_from_start_of_array($value, $arr) {
while(true) {
if( count($arr) > 0 && $arr[0] == $value )
array_shift($arr);
else
break;
}
return $arr;
}
$arr = array(1, 1, 1, 3, 4, 4);
$filtered_array = recursively_remove_value_from_start_of_array(1, $arr);
答案 1 :(得分:0)
这是我的循环尝试。我不认为有一个单线解决方案,除非你创建一个为你做的功能。
foreach($array as $k => $v){
if($v == 1) unset($array[$k]); else break;
}