Обход многомерного массива в цикле

1. php (01.02.2021 / 13:48)
Есть многомерный массив, при его обходе пришлось использовать вложенные циклы. И вот один из внутренних циклов после отработки (обход массива и запись пройденных данных в другой массив), когда снова до него доходит очередь записывает только что прочитанные данные вместе с предыдущими. Т.о. после первой отработки цикла в массив записались 3 строки данных, после второй 6 строк, при этом первые 3 из предыдущего прохода, после третьей 9 и также уже первые 6 строк - накопительный эффект от предыдущих двух отработок, и т.д. После каждой отработки он тянет за собой данные из предыдущего обращения к циклу и записывает их в конечный массив вместе с новыми данными. Наверное многие сталкивались с этим, подскажите пжл решение проблемы.

for() { 
    for() {
        for(){ // проблемный цикл. Когда до него снова доходит очередь он 
                     записывает прочитанные данные в массив вместе со всеми 
                     предыдущими.
        }
    }
}


2. Алик Кутакбашев (01.02.2021 / 13:56)
проблем простой надо делать foreach там просто делать надо

3. php (01.02.2021 / 14:01)
Алик Кутакбашев, foreach что-то не получается, т.к. мне нужен счетчик для обхода, чтобы чего лишнего не записать. А если внутрь for еще foreach запихнуть, то получится тоже самое.

4. ramzes (01.02.2021 / 15:35)
Ты запись в новый массив покажи.

5. Вантуз-мен (01.02.2021 / 15:36)
php, скинь пожалуйста данные и что нужно получить, из описания не очень понятно , скорее всего переменные пересекаются, поэтому скинь исходные данные и как массив должен быть в итоге

6. php (02.02.2021 / 00:29)
Вантуз-мен, 1576 ячеек таких

Добавлено через 00:38 сек.
через foreach тоже дублируются данные с предыдущей итерации

Добавлено через 09:24 сек.
 foreach ($offerList = $MatchList[2]['Match']['OfferList'] as $outcomesKeys => $outcomeList) {

                            foreach ($bets = $outcomeList as $key => $value) {

                                $number = $value['@attributes']['number'];
                                $result['totals'][0][$number]['over'] = $value['Outcome'][0]['@attributes']['odds'];
                                $result['totals'][0][$number]['under'] = $value['Outcome'][1]['@attributes']['odds'];
                            }
                        }


7. php (02.02.2021 / 00:46)
ramzes, только по существу пожалуйста. Я сидел безвылазно часа 4 и под конец уже не соображал что делал)

8. JustZero (02.02.2021 / 02:18)
php, ты бы данные скинул в json)

9. php (02.02.2021 / 02:22)
JustZero, чем массив плох?
Кстати, foreach json понимает?

10. Вантуз-мен (02.02.2021 / 10:50)
php, сделай пожалуйста json_encode массива и выложи сюда, с тем форматом, что ты добавил неудобно работать

11. php (02.02.2021 / 13:06)
Вантуз-мен,

Добавлено через 06:07 сек.
пробовал for и foreach, и все вместе, в результате одна и та же проблема...

12. JustZero (02.02.2021 / 14:51)
php, ну в json мы можем забрать твой массив без проблем. А в print_r только иметь представление о его структуре.

13. Вантуз-мен (02.02.2021 / 14:59)
http://sandbox.onlinephpfunctions.com/code/b8fb9d9e2bf2227ef5292130378fb0d831bdf71d

Не знаю что именно тебе нужно в результате , но обход я написал

Добавлено через 01:31 сек.
Ещё учти там есть odds не в Outcome, но судя по твоему циклу я понял, что они тебе не нужны

14. Алик Кутакбашев (02.02.2021 / 16:33)
php, напишу кода за 500 рублеу
срок недели платить надо потом ждать

15. php (03.02.2021 / 03:28)
Вантуз-мен, я немного не об этом...
На каждой итерации вместе с новыми записями переносятся записи от предыдущей. Т.е. одни и те же данные записываются по нескольку раз.
Добавлено через 02:36 сек.
На скрине красным выделены записи, которые записывались два прохода назад. Их по 3-4 шт. должно быть на каждую запись. А в итоге они копятся с каждым новым проходом цикла. Я об этом узнавал.

16. php (03.02.2021 / 04:57)
Проблему решил: вывод был в контексте цикла.

URL: https://visavi.net/topics/44484