2012-03-21 4 views

답변

7

array_filter()을 사용해 보셨습니까?

$r = array_filter($a, function($var) { 
    return ($var['two'] === 2); 
}); 

위의 출력은 원래 코드보다 약간 다릅니다 :

Yours: 
array(
    0 => array('one' => 1, 'two' => 2), 
    1 => array('one' => 5, 'two' => 2) 
) 

Using array_filter: 
array(
    0 => array('one' => 1, 'two' => 2), 
    2 => array('one' => 5, 'two' => 2) // Note the key is 2, not 1 
) 

당신은 키가 무너해야하는 경우 array_values()array_filter() 또는 array_multisort()

+0

확실히 내가 갈 방법. 'array_filter'는 원래 배열의 키를 유지한다는 것을 알아 두는 것이 중요합니다. –

+3

+1 이것은 가장 좋은 답변입니다. PHP 5.3 이상에서는 익명 함수를 ['create_function()'] (http://php.net/manual/en/function.create-function.php) 호출로 대체해야합니다. 구형 PHP 버전을 사용하는 사람들을위한 공지. – Tadeck

1

당신은 수를 따를 수 있습니다 이 작업을 수행하고 array_walk 또는 array_filter을 사용하는 함수를 작성하십시오.

더 많은 정보를 정리할 수있는 유일한 방법은 원본 데이터 구조를 변경하는 것입니다.

관련 문제