@Gordeich_00

Перебирая SimpleXML файл как многомерный массив, он выдает только первый массив останавливаясь на нем?

Перебираю массив Информчасть и он выдает информацию только о первом Раздел2, хотя их там 4

$xml = simplexml_load_file($_FILES['import_file']['tmp_name']);
$xml = $xml->ИнформЧасть;
$success = true;

foreach ($xml as $value) {
$value1 = $value->Раздел2;
if ($value == $value1 ) {

$lastname = $value->Раздел2->Участник->СведФЛИП->ФИОФЛИП->Фам;
$firstname = $value->Раздел2->Участник->СведФЛИП->ФИОФЛИП->Имя;
$patronymic = $value->Раздел2->Участник->СведФЛИП->ФИОФЛИП->Отч;

$fio = "$lastname $firstname $patronymic";

$passport_serial = json_decode($value->Раздел2->Участник->СведФЛИП->СведДокУдЛичн->СерияДок[0]);
$passport_number = json_decode($value->Раздел2->Участник->СведФЛИП->СведДокУдЛичн->НомДок[0]);
$birth = ($value->Раздел2->Участник->СведФЛИП->ДатаРождения);
$birth = str_replace('/', '-', (string)$birth);
$birth = date('Y-m-d', strtotime($birth));

$person =
[
'fio' => $fio,
'birth' => $birth,
'inn' => json_decode($value->Раздел2->Участник->СведФЛИП->ИИНФЛИП),
'passport_serial' => (string)$passport_serial,
'passport_number' => (string)$passport_number
];

echo "";
var_dump($person);
exit();

Выдает только первый массив
array(5) {
["fio"]=>
string(46) "Исраилов Арсен Расулович"
["birth"]=>
string(10) "1983-09-18"
["inn"]=>
NULL
["passport_serial"]=>
string(4) "8203"
["passport_number"]=>
string(6) "756283"
}

Сам файл выглядит так

<ИнформЧасть>
<ТипОрганизация>НФОТипОрганизация>
<Раздел2>
<НомерЗаписи>2022_190_02_000000000000E7B9НомерЗаписи>
<ФорматЗаписи>4937-РЈ_2.0ФорматЗаписи>
<ТипЗаписи>1ТипЗаписи>
<СведОперация>
<ПризнакИнф>1ПризнакИнф>
<КодОтказа>08КодОтказа>
<КодПричинаОтказ>0000КодПричинаОтказ>
<ДатаОтказа>20/05/2022ДатаОтказа>
<ОснованиеОп>
<КодДок>99КодДок>
<НаимДок>ИноеНаимДок>
<ИноеНаимДок>Заявка на выдачу займа В11484901 от 20.05.2022 22:22:55ИноеНаимДок>
<ДатаДок>20/05/2022ДатаДок>
<НомДок>В11484901НомДок>
ОснованиеОп>
<КодПризнОперации>0КодПризнОперации>
<КодДенежСредств>1КодДенежСредств>
<ПризнНеобОперации>2290ПризнНеобОперации>
СведОперация>
<Участник>
<СтатусУчастника>2СтатусУчастника>
<ТипУчастника>2ТипУчастника>
<ПризнУчастника>1ПризнУчастника>
<СведФЛИП>
<ФИОФЛИП>
<Фам>ИсраиловФам>
<Имя>АрсенИмя>
<Отч>РасуловичОтч>
ФИОФЛИП>
<ИННФЛИП>ИННФЛИП>
<СведДокУдЛичн>
<ВидДокКод>21ВидДокКод>
<ВидДокНаименование>Паспорт гражданина Российской ФедерацииВидДокНаименование>
<СерияДок>8203СерияДок>
<НомДок>756283НомДок>
<ДатВыдачиДок>08/10/2003ДатВыдачиДок>
<КемВыданДок>ОВД ХАСАВЮРТОВСКОГО РАЙОНА РЕСП. ДАГЕСТАНКемВыданДок>
<КодПодр>052-011КодПодр>
СведДокУдЛичн>
<ДатаРождения>18/09/1983ДатаРождения>
<КодОКСМ>643КодОКСМ>
<СтранаНаименование>СтранаНаименование>
<ПризнакПубЛицо>0ПризнакПубЛицо>
СведФЛИП>
Участник>
Раздел2>
<Раздел2>
<НомерЗаписи>2022_080_02_000000000000F2CBНомерЗаписи>
<ФорматЗаписи>4937-РЈ_2.0ФорматЗаписи>
<ТипЗаписи>1ТипЗаписи>
<СведОперация>
<ПризнакИнф>0ПризнакИнф>
<КодОтказа>08КодОтказа>
<КодПричинаОтказ>0000КодПричинаОтказ>
<ДатаОтказа>25/05/2022ДатаОтказа>
<ОснованиеОп>
<КодДок>99КодДок>
<НаимДок>ИноеНаимДок>
<ИноеНаимДок>Уведомление об отказеИноеНаимДок>
<ДатаДок>25/05/2022ДатаДок>
<НомДок>05251238НомДок>
ОснованиеОп>
<КодПризнОперации>1КодПризнОперации>
<ПризнНеобОперации>3701ПризнНеобОперации>
СведОперация>
<Участник>
<СтатусУчастника>1СтатусУчастника>
<ТипУчастника>2ТипУчастника>
<ПризнУчастника>1ПризнУчастника>
<СведФЛИП>
<ФИОФЛИП>
<Фам>ЧумакФам>
<Имя>МарияИмя>
<Отч>ВалентиновнаОтч>
ФИОФЛИП>
<ИННФЛИП>ИННФЛИП>
<СведДокУдЛичн>
<ВидДокКод>21ВидДокКод>
<ВидДокНаименование>Паспорт гражданина Российской ФедерацииВидДокНаименование>
<СерияДок>6005СерияДок>
<НомДок>661247НомДок>
<ДатВыдачиДок>16/06/2006ДатВыдачиДок>
<КемВыданДок>ВТОРОЙ ОТДЕЛ МИЛИЦИИ УВД Г. ШАХТЫ РОСТОВСКОЙ ОБЛ.КемВыданДок>
<КодПодр>612-007КодПодр>
СведДокУдЛичн>
<ДатаРождения>16/10/1983ДатаРождения>
<КодОКСМ>643КодОКСМ>
<СтранаНаименование>СтранаНаименование>
<ПризнакПубЛицо>0ПризнакПубЛицо>
СведФЛИП>
Участник>
Раздел2>
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 2
toxa82
@toxa82
Непонятно где у вас форич заканчивается это раз. Два, вы постоянно перезаписываете переменную $person. Три, у вас эксит после вардампа. Четыре непонятно что с условием в цикле, может там одно значение из всего файла только проходит его.
Ответ написан
Комментировать
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Осторожнее с SimpleXML.
Он очень непривычным способом обходит по дереву разметки.
А ещё удаление или перезапись через него делать "одно удовольствие".
Помните, что ещё есть класс DOM, который часто используют в спарке.
Ну вот такие мы пыхари лентяи, нормальный пакет для работы с XML хрен кто написал.
Можно попробовать симфонийский кроулер, но он вроде как под HTML писался, хотя под капотом использует DOM, а значит в теории умеет в XML.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы