2013-01-08 2 views
1

배열 $ data 배열이 있습니다.키 집합을 기반으로 하위 배열을 효율적으로 추출하는 방법

Array ( 
[1401] => Array ([0] => 94 [1] => 2 [2] => 159) 
[1402] => Array ([0] => 94 [1] => 2 [2] => 50 [3] => 23 [4] => 159) 
[1403] => Array ([0] => 94 [1] => 2 [2] => 50) 
[1404] => Array ([0] => 94 [1] => 90 [2] => 50 [3] => 23) 
[1405] => Array ([0] => 94 [1] => 90) 
[1406] => Array ([0] => 94 [1] => 90 [2] => 23) 
[1407] => Array ([0] => 94 [1] => 90 [2] => 50) 
)

키가 반환

print_r($data); 

숫자의 집합입니다. 그리고이 배열에서 다른 변수에 저장된 키만있는 하위 배열을 추출해야합니다.

$toextract=array(1402,1406); 

루프를 사용하여 새 어레이를 하나씩 구축하는 것 외에는 더 간단한 방법이 있습니다. 이 명령을 여러 번 실행해야하므로 매우 빠르다.

답변

6
$result = array_intersect_key($data, array_flip(array(1402, 1406)); 

array_intersect_key()

+0

array_flip! 그게 내가 놓친거야. –

+0

'array_flip()'이 없어도 주어진 키를 가진 배열을 만드는 것은 매우 간단합니다;)'$ r = array(); foreach (array (1402, 1406) as $ k) $ r [$ k] = null;'그냥 말했습니다. – KingCrunch

관련 문제