2013-09-23 3 views
1

У меня есть строка, как «создать: это: ассоциативный: массив»создать динамический массив ассоциативный из строки PHP

Я хочу, чтобы создать из этой строки

$array["create"]["this"]["assoc"]["array"] = "data" 

, что я имею

static public function add($data_path, $data) 
{ 
    if(!empty($data) && !empty($data_path)) { 
     $keys = explode(":", $data_path); 
     $looper = array(); 
     $length = count($keys) - 1; 
     for ($i=0; $i <= $length ; $i++) 
     { 
      if($i == $length) 
       @$looper[$keys[$i]] = $data; 
      else 
      { 

       @$looper[$keys[$i]] = $keys[$i+1]; 
      } 
     }// end for loop 
       echo '<pre>'; 
       print_r($looper); 
       echo '</pre>'; 
    } 
} 

ответ

4

попробовать что-то вроде этого

$s = "create:this:assoc:array"; 
$array = array_reverse(explode(":", $s)); 
$result = "data"; 
foreach($array as $key => $value){ 
     $result = array($value => $result); 
} 
print_r($result); 
+0

выглядит лучше, чем мой! :), но вам нужно разместить '$ data' в конце дерева – hek2mgl

+1

спасибо! @ hek2mgl – qwertmax

+0

теперь это прекрасно! Хорошее решение – hek2mgl

Смежные вопросы