从数组的开头删除元素,它们具有一定的值(PHP)

时间:2016-01-17 06:27:42

标签: php arrays

我想从数组的开头删除元素,但只删除某些值。例如,我想从数组的开头删除所有“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或其他循环。我知道如何使用循环来做到这一点。我想知道是否存在针对此类问题的另一个单行解决方案。

2 个答案:

答案 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;
}