@ 2013-04-25T17:16:48Z <?php
$path = 'foo/bar/baz';
$root = array('foo' => array('bar' => array('baz' => 'something')));
function bla(&$root, $path, $value)
{
$paths = explode('/', $path);
$current = &$root;
foreach ($paths as $path) {
if (isset($current[$path])) {
$current = &$current[$path];
} else {
return null;
}
}
return $current[$value] = $value;
}
bla($root, $path, '123');
var_dump($root);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Warning: Only the first byte will be assigned to the string offset in /in/iUm08 on line 19
array(1) {
["foo"]=>
array(1) {
["bar"]=>
array(1) {
["baz"]=>
string(124) "something 1"
}
}
}
Output for 5.2.1 - 5.2.9 , 5.2.12 - 5.2.17 , 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.37 , 5.6.0 - 5.6.28 , 7.0.0 - 7.0.20 , 7.1.0 - 7.1.20 , 7.2.6 - 7.2.33 , 7.3.12 - 7.3.33 , 7.4.0 - 7.4.33 array(1) {
["foo"]=>
array(1) {
["bar"]=>
array(1) {
["baz"]=>
string(124) "something 1"
}
}
}
Output for 5.2.10 - 5.2.11 Notice: Uninitialized string offset: 123 in /in/iUm08 on line 19
array(1) {
["foo"]=>
array(1) {
["bar"]=>
array(1) {
["baz"]=>
string(124) "something 1"
}
}
}
Output for 4.3.0 - 4.3.11 , 4.4.0 - 4.4.9 , 5.0.0 - 5.0.5 , 5.1.0 - 5.1.6 , 5.2.0 array(1) {
["foo"]=>
&array(1) {
["bar"]=>
&array(1) {
["baz"]=>
string(124) "something 1"
}
}
}
preferences:dark mode live preview
236.99 ms | 402 KiB | 350 Q