Diverse for loops

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Menno Poohver

Menno Poohver

26/09/2021 20:27:12
Quote Anchor link
Hallo allemaal,

Ik heb een script dat middels simplexml_load_file() een XML file doorloopt en items in een database insert.
Echter heb ik afhankelijk van de XML feed een andere loop. Hoe kan ik dit het beste oplossen. Eigenlijk komt het er op neer dat ik meerdere foreach loops heb die ik wil samen voegen en middels bijvoorbeeld 1 variable wil kunnen aanpassen aan de situatie. Zie onderstaand:


foreach ($xml_load->product as $items) {

}


foreach ($xml_load->programs->program->products->product as $items) {

}


- - - -

Mijn eerste gedachte was zoiets als onderstaand. Maar dat werkt niet.

if($case = 1) {
$loop_variable = 'programs->program->products->product';
} else {
$loop_variable = 'product';
}

foreach ($xml_load->$loop_variable as $items) {

}


Mijn tweede gedacht was zoiets, ook dat werkt niet :)

if($case = 1) {
foreach ($xml_load->programs->program->products->product as $items) {
} else {
foreach ($xml_load->product as $items) {
}
Gewijzigd op 26/09/2021 20:49:36 door Menno Poohver
 
PHP hulp

PHP hulp

29/11/2021 21:51:48
 
Rob Doemaarwat

Rob Doemaarwat

26/09/2021 21:43:29
Quote Anchor link
Zet het foreach deel in een function, en geef hetgeen waar je overheen wilt loopen mee als parameter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

function do_the_loop($array){
  foreach($array as $items){
    //doe ding
  }
}



do_the_loop($xml_load->programs->program->products->product);
do_the_loop($xml_load->product);

?>

Maakt de boel meteen een stuk overzichtelijker omdat je niet een heel stuk alles-in-een spaghetti hebt!
 
Menno Poohver

Menno Poohver

29/09/2021 15:04:01
Quote Anchor link
Super! Dank voor de duidelijk reactie. We hebben het op die manier ingebouwd. Dan een vervolg vraag. Op dit moment heb ik dus 2 do_the_loop's.

Voor de ene XML feed wordt deze gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
do_the_loop($xml_load->programs->program->products->product);


Voor de andere XML feed:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
do_the_loop($xml_load->product);



Beide feeds staan opgeslagen als records in een database. Ik zou bij die records graag opslaan welke van de 2 do_the_loop gebruikt moet worden.

Wat is de beste manier om:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
do_the_loop($xml_load->programs->program->products->product);

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
do_the_loop($xml_load->product);


Op te slaan als waardes in een MYSQL database? Overigens is moet het ook mogelijk zijn om nog een variant te hebben. Het zijn dus geen vaste waardes. Ze verschillen per feed.
Gewijzigd op 29/09/2021 15:07:48 door Menno Poohver
 
Ad Fundum

Ad Fundum

29/09/2021 19:54:51
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.