<?php
$array = [];
$keys = '[a][b][c]';
$value = 'HELLO WORLD';
function setArrayValueFromKeys(&$array, $keys, $value) {
$keys = explode('][', trim($keys, '[]'));
$reference = &$array;
foreach ($keys as $key) {
if (!array_key_exists($key, $reference)) {
$reference[$key] = [];
}
$reference = &$reference[$key];
}
$reference = $value;
}
setArrayValueFromKeys($array, $keys, $value);
var_dump($array);
- Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array(1) {
["a"]=>
array(1) {
["b"]=>
array(1) {
["c"]=>
string(11) "HELLO WORLD"
}
}
}
- Output for 5.3.10
- Parse error: syntax error, unexpected '[' in /in/vBpEj on line 3
Process exited with code 255.
preferences:
173.71 ms | 401 KiB | 388 Q