2012-08-17 21 views
2

배열의 일부를 제거해야합니다. 다음은 배열의 예입니다.PHP. 배열의 일부 제거

Array ([0] => one [1] => two [2] => three [3] => four [4] => five) 

변수는 배열의 다음 값 중 하나를 기반으로 할 수 있습니다. '3'이 있다고 제안합니다. 하나, 둘, 다른 모든 것들을 제거해야합니다.

표준 방법이 있습니까, 아니면 루프를 사용할 필요가없는 좋은 해결책이 있습니까? 당신은 루프를 사용하지 않으려면

답변

8

당신은 그

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 1, -1); 
// $input is now array("red", "yellow") 
+3

아아 내에서 벗어나십시오. 광고! ;-) 질문에 대한 –

+1

또한 오프셋 http://uk.php.net/manual/en/function.array-search.php를 찾으려면 array_search()가 필요하고 길이는 생략하십시오 – Waygood

+1

@Grim 죄송합니다, 나는 때때로 이것을한다 :-) – Asciiom

4

에 대한 array_splice을 사용할 수 있습니다, 당신은 array_splice를 사용할 수 있습니다.

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, $varaible, -1); 
// $input is now array("red", "yellow") 
3

이 @JeroenMoons이 array_splice 사용하지만 너무

function reduce_my_array($array, $value) 
{ 
    // look for location of $value in $array 
    $offset=array_search($value, $array); 

    // if not found return original 
    if($offset===false) return $array; 

    // remove from the found offset to the end of the array 
    return array_splice($array, $offset+1);  
} 

참고 제안 array_search 할 것입니다 : 될 수있는 인덱스를 돌려줍니다 array_search
0
array_splice이 항목의 번호를 사용 오프셋로를
예를 들어 숫자 인덱스가 0 인 경우 ... 배열 스플 라이스 인덱스 + 1을 말합니다.