본문 바로가기

'.' Programs/PHP

[PHP] 키와 밸류 값으로 배열 위치 찾기.

같은 인자값으로 구성된 다중 배열에서.. (연관배열)

밸류 값으로만 몇번째 배열에 속한 데이터인지를 찾아내야할때 아래의 함수를 사용하면 된다.

 

* 함수 사용으로 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