Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
Андрей
0
вклад
1
вопрос
0
ответов
0%
решений
Комментарии
Информация
Ответы
Вопросы
Комментарии
Подписки
Нравится
PHP: изменение значения ключа в массиве переменной величины?
Андрей
@NikNetRu
Автор вопроса
public function set($keystring, $value = null)
{
echo '
SET - '.$value.' IN '.$keystring.'
';
$keys = explode('.', $keystring);
$array = $this->items;
function set_value($keys, &$array, $value)
{
if(count($keys) > 1){
set_value(array_slice($keys, 1), $array[$keys[0]], $value);
}else{
$array[$keys[0]] = $value;
}
return $array;
}
$this->items = set_value($keys, $array, $value);
print_r ($array);
echo '
';
print_r ($this->items);
}
Всем спасибо за помощь. А я пойду изучать рекурсию, ссылочные данные и древовидные структуры)
Написано
более трёх лет назад
PHP: изменение значения ключа в массиве переменной величины?
Андрей
@NikNetRu
Автор вопроса
/**
* TODO: добавить в $tems значение $value по пути $keystring
*
* @param string $keystring
* @param $value = null
*
*
return
ArrayContainer
*/
public function set($keystring, $value = null)
{
echo '
SET - '.$value.' IN '.$keystring.'
';
$keys = explode('.', $keystring);
$count = count($keys);
$objArr = $this->items;
for ($i=0; $i<$count; $i++) {
$objArr = $objArr[$keys[$i]];
}
print_r ($objArr);
echo '
';
print_r ($this->items);
}
Я считаю это чушью ) , просто начал тыкать наугад. И подобный код врят ли вам поможет.
https://github.com/NikNetRu/Arrays/blob/master/Arr...
Написано
более трёх лет назад
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама
{
echo '
SET - '.$value.' IN '.$keystring.'
';
$keys = explode('.', $keystring);
$array = $this->items;
function set_value($keys, &$array, $value)
{
if(count($keys) > 1){
set_value(array_slice($keys, 1), $array[$keys[0]], $value);
}else{
$array[$keys[0]] = $value;
}
return $array;
}
$this->items = set_value($keys, $array, $value);
print_r ($array);
echo '
';
print_r ($this->items);
}
Всем спасибо за помощь. А я пойду изучать рекурсию, ссылочные данные и древовидные структуры)