Задать вопрос
RuslanCC
@RuslanCC

PHP — как из строки сделать переменную?

Добрый день!
Уже час не могу понять, помогите, пожалуйста.
У меня есть строка:
$str = '$temp["items"][0]["title"][0]'
Где нули заменяются на инкрементируемую переменную.
И есть массив, получаемый из JSON:
$temp = json_decode($json, true);
В данном массиве есть значение ["items"][0]["title"][0]
Мне нужно его достать, но при этом требуется использовать $str
$result = eval($str); - не помогает.
Как мне превратить $str в значение из массива $temp?
Спасибо
  • Вопрос задан
  • 448 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@enixpp
Попробуйте вот такой гавнокод :)
$result = eval('return ' . $str . ';');
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@maxyc_webber
Web-программист
nazarpc
@nazarpc
Open Source enthusiast
Откуда у вас код в $str взялся?
Как вариант - разбить на части строку, вроде такого:
$str = '$temp["items"][0]["title"][0]';
$temp = json_decode($json, true);
$prepared_string = explode('[', $str, 2)[1];
$result = $temp;
foreach (explode('][', $prepared_str) as $part) {
    $result = $result[trim($part, '"]');
}
var_dump($result);

Можно регуляркой разобрать или разбить, но это всё слишком криво, криво то, что у вас код в строке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы