<?php
#$str = 'doom2:';
#var_dump(implode(':',explode(':',$str))); exit;
$arr = array('var'=> array('sub2' => 'notouch'));
function strAssign(&$arr,$str,$val,$trail=true){
if(!empty($str)){
$str = explode(':',$str);
$key = array_shift($str);
if((isset($arr[$key]) && gettype($arr[$key])!='array') || !isset($arr[$key])){
$arr[$key] = array();
}
strAssign($arr[$key],implode(':',$str),$val);
}else{
if($trail){
$arr[] = $val;
}else{
$arr = $val;
}
}
}
strAssign($arr,'var:sub:sub2:','value');
var_dump($arr);
preferences:
41.09 ms | 402 KiB | 5 Q