2011-05-02 9 views
1

이러한 함수가 있는지 확실하지 않지만 다음과 같이 처리 할 것으로 예상됩니다. get_array_value($array, $chain); 여기서 $array은 값을 검색 할 배열이고 $chain은 배열입니다. 검색 할 값이있는 정보가 들어 있습니다.배열 값을 동적으로 얻는 방법

사용 예제 : $chain = array('key1', 'key2', 'key3'); 경우, 다음 함수가 $array['key1']['key2']['key3'];

비슷한 것을 이미 거기 밖으로 그렇지 않은 경우, 내가 어떻게 이것을 달성 할 수 반환해야합니까?

미리 감사드립니다.

는 UPDATE :

응 의도 결과는 단일 값이 아닌 배열되어야한다. 그래서 매우 짧은 형식 그게 echo get_array_value($array, $chain);

답변

5
$cloneArray = $array; // clone it for future usage 
foreach($chain as $value) 
{ 
    $cloneArray = $cloneArray[$value]; 
} 

var_dump($cloneArray); 
+0

단순하고 매력적입니다. 감사! – jolt

3
function resolve ($array, $chain) { 
    return empty($chain) 
     ? $array; 
     :resolve($array[array_shift($chain)], $chain); 
} 

처럼 사용할 수 있습니다. 해결하려는 모든 키가 존재 함을 확인해야합니다.