@ 2015-11-18T11:53:14Z <?php
function isArrayFieldSet(array $array, $field, $separator = '/')
{
if (strpos($field, $separator) !== false) {
$path = explode($separator, $field);
$field = array_shift($path);
if (!is_null($field) && isset($array[$field])) {
if (count($path) > 0) {
return isArrayFieldSet($array[], implode($separator, $path), $separator);
}
return true;
} else {
return false;
}
}
return isset($array[$field]);
}
$array = [
'a' => 'test',
'b' => [
'b2' => 123,
'b3' => [
'test' => true
]
]
];
$shouldPass = [
'a',
'b',
'b/b2',
'b/b3',
'b/b3/test'
];
$shouldNotPass = [
'c',
'b/b1',
'b/b2/bx',
'b/b3/test/x',
'c/L1',
'a/k15',
];
for ($i = 0; $i < 100; $i++) {
foreach ($shouldPass as $test) { isArrayFieldSet($array, $test, '/'); }
foreach ($shouldNotPass as $test) { isArrayFieldSet($array, $test, '/'); }
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.0.0 - 7.0.20 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 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.18 , 8.3.0 - 8.3.6 Fatal error: Uncaught Error: Cannot use [] for reading in /in/Bmfat:11
Stack trace:
#0 /in/Bmfat(51): isArrayFieldSet(Array, 'b', '/')
#1 {main}
thrown in /in/Bmfat on line 11
Process exited with code 255 . Output for 5.5.24 - 5.5.35 , 5.6.8 - 5.6.28 Fatal error: Cannot use [] for reading in /in/Bmfat on line 11
Process exited with code 255 . preferences:dark mode live preview
198.32 ms | 402 KiB | 226 Q