2012-02-26 3 views
1

내가 MySQL의 SELECT WHERE 같은 곳에 있지만 배열에 있는지 알고 싶다.MySQL은 어디 PHP 배열 이에 상응하는

$array = array(1 => array('test' => '1', 'test2' => '2' ), 
       2 => array('test' => '4','test2' => '2' 
       ) 

); 

나는 기본적으로 모든 레코드를 걸려 곳 'TEST2'= '2':

나는이 배열이있다. 그래서 내 결과는 ID의 1,2가되어야합니다.

이 작업을 수행 할 수 있습니까?

+0

를 사용하고 값을 직접 테스트하는 경향 될 것입니다. 가자! – halfer

+4

'너무 현지화 된'것으로 투표를 끝내는 사람들은 있습니까? 어쩌면 우리는 '나는 그 질문을 이해하려고 노력하지 않았으므로 그 질문을 끝내자'라는 선택권을 가져야 만 할 것입니다. – Mchl

+0

오, 그 PHP는 질문이 아니라 MySQL 하나, 잘 바보. –

답변

4

당신은 array_filter 찾고 :

array_filter($array, function ($v) { return $v["test2"] === "2"; }); 
+2

익명 함수를 사용하는 구문은 PHP 5.3 이상에서만 작동합니다. 이전 버전의 경우 미리 콜백 함수를 만들어야합니다. – Mchl

+0

신속한 답변을 해주시고, 왜 3 '='기호를 사용 하셨는지 궁금합니다. – Codecube

+1

@Marases'==='는 동일합니다; '=='은 같음; http://php.net/manual/en/language.operators.comparison.php를 참조하십시오. – SimonMayer

1

당신이 PHP 배열에서 데이터를 검색하는 SQL을 사용 할 수있는 sql4array 클래스가, 내가 그것을 사용한 적이 및 댓글 수는 없지만 그것이 얼마나 좋은지. 개발자는 느리지 만 SQL 문 전체를 지원하지 않는다는 것을 인정합니다.

PHPLinq 또는 plinqlinqforphp과 같은 언어 통합 쿼리를 사용하는 대안도 있습니다.

개인적으로, 나는 foreach는() 루프를 사용하여 배열을 통해 당신은 루프 수 array_filter()

관련 문제