alpha
Новичок
Как удалить элемент массива, если "путь к элементу ввиду строки"?
Тоесть хочу удалить элемент из массива, зная его строковое представление.
Тоесть есть к примеру массив
Я хочу удалить $a['b']['c'][3], но у меня есть только строка этого элемента: "b['c'][3]".
Возможно я как-то не так делаю, но что-то я не совсем догоняю как это сделать.
Значение произвольного элемента я нахожу, если убрать все проверки на существование, так:
Если этот метод не через ж..., то как мне сделать unset того, на что ссылается $currarr?
Если все-таки метод через ж..., то просветите пожалуйста КАК?
Тоесть хочу удалить элемент из массива, зная его строковое представление.
Тоесть есть к примеру массив
PHP:
$a = array(
'b'=>array('c'=>array(1, 2, 3, 4, 5)),
'd'=>18,
'o'=>4
);
Возможно я как-то не так делаю, но что-то я не совсем догоняю как это сделать.
Значение произвольного элемента я нахожу, если убрать все проверки на существование, так:
PHP:
$array - искомый массив
$ParamName - путь к удаляемому элементу
надо удаалить $array['a']['b']['c'], имеем строку "a['b']['c']"
$parts = Array();
$pos = strpos($ParamName, '[');
$parts = explode('][', substr($ParamName, $pos + 1, -1));
array_unshift($parts, substr($ParamName, 0, $pos));
// В результате получаем массив типа $parts = Array('a', 'b', 'c');
$currarr =& $array;
foreach ($parts as $part) {
if (!isset($currarr[$part])) { return false; }
$currarr =& $currarr[$part];
}
$currarr - есть значение искомого элемента;
Если все-таки метод через ж..., то просветите пожалуйста КАК?