Я пытаюсь обратиться к определенному столбцу SQL-запроса в зависимости от значения другой строки из запроса.
Результат, который я получаю из SQL-запроса, выглядит примерно так:
Number | Value1 | Value2 | Value3
1 | 3 | 5 | 4
3 | 5 | 2 | 6
2 | 1 | 3 | 2
Для каждой строки я хочу получить значение столбца по индексу числа. Так, например, в первой строке я хочу получить значение «Значение1», равное 3. Во второй строке я хочу получить значение «Value3», равное 6, и так далее.
Затем я перебираю список с помощью цикла TWIG for и могу получить доступ к параметру «Число» следующим образом:
{% for key in examplelist|keys %}
{% set number = examplelist[key].number %}
{% endfor %}
К сожалению, я не могу обращаться к столбцам «Значение», используя этот номер.
Я пробовал такие вещи, как:
{{examplelist[key].Value . number }}
или
{{examplelist[key].Value + number }}
или
{{examplelist[key].Value ~ number }}
но ни один из них не работает...
это должно помочь
{% for key in examplelist|keys %}
{% set number = examplelist[key].number %}
{% set value = examplelist[key]["Value"~number] %}
{% endfor %}
Хорошо, я понял это.
Данные возвращаются как объект типа stdClass, а не как массив. Поэтому вы не можете получить к нему доступ как к массиву, и его необходимо преобразовать с помощью
$Examplelist = json_decode($Examplelist, true);
return $Examplelist;
в части php.
После этого его можно решить с помощью
{% set value = examplelist[key]["Value"~number] %}
Спасибо за помощь в любом случае :)
«как-то не работает» не дает много информации для работы :) - это решение работает с аналогичными простыми данными массива, как показано в вашем вопросе (я тестировал это с веткой 2.6). Итак, что вы получаете как ошибку из вышеизложенного? или от сброса значения "value" сверху? Или что именно означает, что это как-то не работает? И можете ли вы сбросить всю переменную «examplelist», чтобы увидеть, в каком формате у вас есть данные.