같은 인자값으로 구성된 다중 배열에서.. (연관배열)
밸류 값으로만 몇번째 배열에 속한 데이터인지를 찾아내야할때 아래의 함수를 사용하면 된다.
* 함수 사용으로 for문의 수고를 덜수 있으니.. 대만족이다 ..ㅡ0ㅡ)b
echo recursiveArraySearch($array, '밸류', '배열 키'); // returns 5
<?php
function recursiveArraySearch($haystack, $needle, $index = null)
{
$aIt = new RecursiveArrayIterator($haystack);
$it = new RecursiveIteratorIterator($aIt);
while($it->valid())
{
if (((isset($index) AND ($it->key() == $index)) OR (!isset($index))) AND ($it->current() == $needle)) {
return $aIt->key();
}
$it->next();
}
return false;
}
?>
<?php
$std = new stdClass();
$std->name = 'luke';
$std->age = '25';
$std->sex = 'M';
$array = array( array('type'=>'dog', 'name'=>'butch', 'sex'=>'m', 'breed'=>'boxer'),
array('type'=>'dog', 'name'=>'fido', 'sex'=>'m', 'breed'=>'doberman'),
'simpleValue',
array('type'=>'cat', 'name'=>'tiddles','sex'=>'m', 'breed'=>'maine coon'),
array('type'=>'horse', 'name'=>'ed','sex'=>'m', 'breed'=>'clydesdale'),
$std);
echo recursiveArraySearch($array, '25', 'age'); // returns 5
echo recursiveArraySearch($array, '25', 'name'); // returns false
echo recursiveArraySearch($array, 'simpleValue'); // returns 2
echo recursiveArraySearch($array, 'fido'); // returns 1
?>
''.' Programs > PHP' 카테고리의 다른 글
[PHP] 리다이렉션 (페이지이동) 3가지 방법 (1) | 2012.07.04 |
---|---|
PHP의 배열 [연관배열] (2) | 2012.07.04 |
[PHP] 쿠키 설정. (0) | 2012.07.03 |
[PHP] 배열 stdclass <-> array 변환 (1) | 2012.07.02 |
php에서 원격mssql 접속 (0) | 2012.06.01 |