2015-01-27 3 views
0

I는 무엇을 가지고 :다차원 키 배열 푸시

<?php 

$keys = array('a', 'b', 'c', ..., ...); 
$value = 'blah'; 

?> 

내가 달성하고자하는 것은 :

<?php 

$someArr['a']['b']['c'][...][...] = $value; 

?> 

것은 무엇이를 달성 할 수있는 가장 현명한 방법이 될 것입니다?

// 내가 거기에

답변

1

이 재귀 요청에 점을 추가 한 이유는 $ 키에 거기에 얼마나 많은 요소 모르는

편집은, 그건 :

<?php 
function array_md_push($keys, &$pushto, $value) { 
    if ($keys == array()) {       // no keys left - put value 
     $pushto = $value; 
    } else {           // keys left - recursion! 
     $key = array_shift($keys);     // take the first element 
     array_md_push($keys, $pushto[$key], $value); // call with one key less 
    } 
} 

$keys = array('a', 'b', 'c'); 
$value = 'blah'; 
$pushto = array(); 

array_md_push($keys, $pushto, $value); 

var_dump($pushto); 

결과 :

array(1) { 
    ["a"]=> 
    array(1) { 
    ["b"]=> 
    array(1) { 
     ["c"]=> 
     string(4) "blah" 
    } 
    } 
} 

array_md_push()은 첫 번째 인수로 키를, 두 번째 값으로 푸시 할 배열 및 세 번째 값을 사용합니다. 키 배열이 비어 있으면 밀어 넣을 배열에 값을 저장합니다. 그렇지 않은 경우, 하나의 키가 덜한 자체를 호출하고 $pushto이 해당 키로 확장됩니다.