Рассмотрим элементы массива по одному

я использую WebMerge создавать документы.

У меня есть правило, которое выглядит следующим образом (игнорировать {$docType} условно для этого вопроса):

введите описание изображения здесь

И я передаю данные JSON, которые выглядят так:

{
"forms": [
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "2000000"}
},
{
"formID": 20,
"formUrl": "https://www.webmerge.me/merge/111111/a2X5yn",
"fillIns": []
}
]
}

Это прекрасно работает и будет загружать каждую форму на основе URL, предоставленного по мере необходимости.

Однако, если у меня есть две одинаковые формы с разными fillIns, как это:

{
"forms": [
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "1000000"}
},
{
"formID": 19,
"formUrl": "https://www.webmerge.me/merge/123456/y3wpgu",
"fillIns": {
"retainedAmount": "2000000"}
}
]
}

Он объединяет две формы, как и должно быть, но каждая форма имеет оба значения для retainedAmountна основе следующего отображения:

{foreach from=$forms item=_row}{if $_row.formID == 19}{if !empty($_row.fillIns.retainedAmount)}{$_row.fillIns.retainedAmount|number_format}{/if}{/if}{/foreach}

Таким образом, конечный результат для обеих форм будет выглядеть так:

Оставшаяся сумма: 10000002000000

В результате я хочу, чтобы первый экземпляр формы отображал

Оставшаяся сумма: 1000000

и второй отображает

Оставшаяся сумма: 2000000

Похоже, что поскольку отображение каждый раз проходит по каждому элементу в массиве, именно поэтому каждая форма добавляет оба значения.

Я играл с array_shift а также array_pop так что правило будет повторяться, но будет учитывать только один элемент за раз, но я не могу заставить его работать правильно.

Я думаю, что мне нужно поместить каждый элемент в переменную, а затем ссылаться на эту переменную на карте, но я не могу заставить ее работать. Я бы показал все свои попытки, но я думаю, это будет просто уродливо.

Наконец, я никогда не узнаю, по какому индексу или сколько идентичных форм с разными заполнениями появятся, поэтому я не могу использовать ключ, чтобы направлять меня.

Поскольку я понимаю, что не у всех есть webmerge, конечный результат через печать будет примерно таким:

FormID = 19 |Retained Amount = 1000000
FormID = 19 |Retained Amount = 2000000

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]