array van objecten, check voor object met property value is ...
mijn situatie is als volgt. Ik heb een array van objecten (stdClass objecten). Ik wil weten of een van deze objecten bij de property betaald de waarde 1 heeft. Wat is de beste methode om dit voor elkaar te krijgen?
Einddoel
Ik heb een pagina waar ik facturen heb staan. Deze factuurlijst word standaard gefilterd op onbetaalde facturen. Dan is de tabelkolom "Betaald" dus onnodig. Wanneer de vink "Toon ook betaald" aangezet word worden dus alle facturen, inclusief de betaalde facturen opgehaald. Wanneer er geen betaalde facturen zijn maar "Toon ook betaald" wel aan staat moet de kolom "Betaald" ook niet getoond worden. Met bovenstaande vraagstuk wil ik dit bewerkstelligen.
Situatie nu
Code (php)
Ik denk dat de huidige situatie erg omslachtig is. Is er een betere manier?
Anders is het gewoon simpel:
- standaard (alleen onbetaald): kolom niet tonen
- "Toon ook betaald" aangevinkt: kolom wel tonen
Rob, excusses. Je hebt inderdaad gelijk. Als "Toon ook betaald" is aangevinkt maar er GEEN betaalde facturen zijn de kolom niet getoond moet worden. Ik heb de originele vraagstelling inmiddels aangepast.
Zo heel omslachtig is het niet volgens mij. Wat je evt. zou kunnen doen is eerst de tabel renderen en de kolom "betaald" een aparte class mee geven (en ook de bijbehorende velden in de head en evt. foot). Ondertussen houd je bij of er "een" record betaald is. Is dat op het einde niet het geval, dan voeg je een stukje CSS in waarmee je de kolom "betaald" verbergt.
Rob, jou voorstel klinkt juist omslachtiger dan wat ik nu doe. Bedankt voor de tip maar is het dan denk ik toch beter door te gaan op de toer dat ik nu doe.
Ben je strenger in de leer, dan moet je helemaal terug langs af en alléén de betaalde facturen selecteren uit je data.
De techniek die je nu gebruikt, is een tussenvorm: je selecteert wel alle data, maar verbergt/toont daarvan vervolgens maar een gedeelte in HTML. Dat je dat omslachtig vindt, klopt: het is vlees noch vis. Als je dat structureel wilt verbeteren, zul je van de eerder ingeslagen weg moeten afwijken.