2011-09-19 7 views
0

나는 다음과 같은 PHP 배열이 : 배열을 검색경우 현재 PHP 배열에서 값을 제거

  1. :

    Array 
    (
        [0] => 750 
        [1] => 563 
        [2] => 605 
        [3] => 598 
        [4] => 593 
    ) 
    

    내가 PHP를 사용하여 배열에 다음과 같은 작업을 수행 할 필요를 (값은 변수에 속하므로 $number이라고합시다). 배열에 값이 있으면 제거하십시오.

다른 사람이 나를 따라갈 수 있으면 나를 높이 평가할 수 있습니다.

참고 : 더 쉽게 만들 수 있으면 키가 값과 동일하도록 배열을 구성 할 수 있습니다.

+1

- 문서 http://ru2.php.net/manual/en/ref.array를 참조하십시오. ph – zerkms

+0

3 가지 질문이 있습니다. [최소 및 최대 찾기] (http://stackoverflow.com/questions/1428800/getting-the-min-and-max-values-from-a-php-array) 3 번 질문을보십시오. – styfle

+0

OK, I 최소값과 최대 값을 찾고 중복을 제거했지만 특정 값이 있으면 제거하는 방법은 무엇입니까? 나는이 질문 만 집어 넣을 것이다. – stefmikhail

답변

2
$array = array_unique($array) // removes dupicate values 


while(false !== ($num = array_search($num, $array))){ 
    unset($array[$num]); 
} 
$max = max($array); 

값 $ NUM 개의 모든 키를 검색하고 그들에게

+0

while 루프는 첫 번째 요소 (index 0)가 발견되면 코드가 요소를 설정 해제하지 않기 때문에'! == false'를 특별히 확인해야합니다. – styfle

+0

@genesis φ - 답변 해 주셔서 감사합니다. Josh Randall이 키를 설정 해제하는 방법과 비교할 때 어떻게 생각합니까? – stefmikhail

+0

@stefmikhail : 그의 것이 조금 복잡하고 어렵습니다. – genesis

2

설정을 해제 할 것은 말할 수 귀하의 $array

$array = array_unique($array) // removes dupicate values 

$array = arsort($array) 

$variable = $array[0] // the maximum value in the array, and place it in a variable. 

$key = array_search($array, $number); 

if($key){ 

    unset($array[$key]) // Search array for a value, value is present in array, remove it. 

} 
+0

이렇게 훌륭한 답변을 제공해 주셔서 감사합니다. 나는 각 기능을 찾아보다 잘 이해할 수있을 것이다. 다시 한 번 감사드립니다! – stefmikhail

0

array_search()unset() 귀하의 질문에 샘플 데이터를위한 좋은 방법을 보인다. 비교를 위해 다른 방법을 보여줄뿐입니다 (또는 유스 케이스가 여기에 게시 한 것과 약간 다른 경우).

방법 : (Demo)

$array=[750,563,605,598,593]; 

// if removing just one number apply the number as an array element 
$number=605; 
var_export(array_diff($array,[$number])); 

// if you are performing this task with more than one $number, make $numbers=array() and do the same... 
$numbers=[605,563]; // order doesn't matter 
var_export(array_diff($array,$numbers)); 

// if you need to re-index the output array, use array_values()... 
$numbers=[605,563]; // order doesn't matter 
var_export(array_values(array_diff($array,$numbers))); 

출력 : 신 위해서

array (
    0 => 750, 
    1 => 563, 
    3 => 598, 
    4 => 593, 
) 

array (
    0 => 750, 
    3 => 598, 
    4 => 593, 
) 

array (
    0 => 750, 
    1 => 598, 
    2 => 593, 
) 
관련 문제