Lege waarde in array verwijderen
Ik heb een loop die vierkante meters laat zien, het probleem is dat aan het einde lege waardes te zien zijn en deze gaan niet weg met array filter. Wat kan ik hieraan doen?
Dit is mijn php code:
En dit is de waarde van $productarray['basisstaffel'] :
De lijst die ik nu krijg is:
Tussen: 3
En: 10
Tussen: 10
En: 20
Tussen: 20
En: 30
Tussen: 30
En: 40
Tussen: 40
En: 50
Tussen: 50
En: 60
Tussen: 60
En: 110
Tussen:
En:
Zoals je ziet staan onderaan twee lege waardes. Hoe kan ik die eruit filteren? In mijn database staat geen witregel die ik kan zien op de laatste regel, en als ik filter op "\n" zijn alle waardes leeg omdat elke regel een witregel heeft.
Dit is mijn php code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
// Explode de staffel om de basis prijs eruit te halen
$explodedstaffel = explode(';', $productarray['basisstaffel']);
// Loop het elke regel
foreach($explodedstaffel as $staffelregel){
// Explode elke regel op : voor vierkante meters en prijs
$explodeformatandprice = explode(':', $staffelregel);
// Explode de vierkante meters op laagste en hoogste getal
$explodedvierkantemeters = explode('-', $explodeformatandprice[0]);
// Filter lege waardes uit array
$explodedvierkantemeters = array_filter($explodedvierkantemeters, 'strlen');
echo 'Tussen: '.$explodedvierkantemeters[0].'<br>';
echo 'En: '.$explodedvierkantemeters[1].'<br>';
}
?>
// Explode de staffel om de basis prijs eruit te halen
$explodedstaffel = explode(';', $productarray['basisstaffel']);
// Loop het elke regel
foreach($explodedstaffel as $staffelregel){
// Explode elke regel op : voor vierkante meters en prijs
$explodeformatandprice = explode(':', $staffelregel);
// Explode de vierkante meters op laagste en hoogste getal
$explodedvierkantemeters = explode('-', $explodeformatandprice[0]);
// Filter lege waardes uit array
$explodedvierkantemeters = array_filter($explodedvierkantemeters, 'strlen');
echo 'Tussen: '.$explodedvierkantemeters[0].'<br>';
echo 'En: '.$explodedvierkantemeters[1].'<br>';
}
?>
En dit is de waarde van $productarray['basisstaffel'] :
De lijst die ik nu krijg is:
Tussen: 3
En: 10
Tussen: 10
En: 20
Tussen: 20
En: 30
Tussen: 30
En: 40
Tussen: 40
En: 50
Tussen: 50
En: 60
Tussen: 60
En: 110
Tussen:
En:
Zoals je ziet staan onderaan twee lege waardes. Hoe kan ik die eruit filteren? In mijn database staat geen witregel die ik kan zien op de laatste regel, en als ik filter op "\n" zijn alle waardes leeg omdat elke regel een witregel heeft.
$explodedstaffel = explode(';', $productarray['basisstaffel']);
Als er achter elk item een puntkomma staat dan is het laatste record leeg.
Haal die laatste puntkomma weg of check in de foreach() of het record niet leeg is.
Als er achter elk item een puntkomma staat dan is het laatste record leeg.
Haal die laatste puntkomma weg of check in de foreach() of het record niet leeg is.
Ohja tuurlijk logisch. Thanks het is opgelost.
Heb je zelf de controle over $productarray? Waarom sla je dit dan niet wat intelligenter op? Nu moet je ook een heleboel bewerkingen uitvoeren om dat ding weer uit te pakken. Al nagedacht over JSON?
array_filter, gewoon zonder $callback.
Thomas van den Heuvel op 22/11/2019 13:59:53:
Heb je zelf de controle over $productarray? Waarom sla je dit dan niet wat intelligenter op? Nu moet je ook een heleboel bewerkingen uitvoeren om dat ding weer uit te pakken. Al nagedacht over JSON?
Helaas niet, json is voor degene die met dit cms aan de slag gaat een stuk omslachtiger dan hoe het nu staat. Voor een programmeur is het beter maar voor een leek niet. En het CMS forceert me helaas het zo op te lossen.
Wat heeft een leek met JSON te maken?
Laat een leek het op een normale manier invoeren, waarna het automatisch wordt gevormd tot een JSON-string.
Laat een leek het op een normale manier invoeren, waarna het automatisch wordt gevormd tot een JSON-string.
Inderdaad. Ik hoop van harte dat alle gebruikers die informatie moeten invoeren (zelfs programmeurs of wie dan ook die hier meer kaas van gegeten hebben) hier gewoon een fatsoenlijke interface voor hebben (die zijn per slot van rekening ook geen rauwe JSON aan het inkloppen), waarna dit dus onder water wordt omgezet in een soort van datastructuur die nagenoeg direct weer uit te lezen valt (json_decode() en je bent klaar?).
Het voordeel daarvan is tevens dat deze "lap tekst" van zichzelf betekenis heeft, en niet zomaar een lap tekst is met punten en komma's in een soort van custom formaat die je op een specifieke manier in elkaar moet draaien en op een specifieke manier dient te ontmantelen.
Het voordeel daarvan is tevens dat deze "lap tekst" van zichzelf betekenis heeft, en niet zomaar een lap tekst is met punten en komma's in een soort van custom formaat die je op een specifieke manier in elkaar moet draaien en op een specifieke manier dient te ontmantelen.




