Tot hier toe nog alles prima.
Nu is de vraag hoe ik die cells kan uitlezen. Moet dit dan met een foreach onder een foreach?
Ik heb al verschillende dingen geprobeerd maar het werkt niet.
Heeft het rijnummer dan betekenis? Het klopt dat er wat for-loops missen in mijn variant ten opzichte van jouw variant, maar volgens mij maakt dat niet uit? Alle relevante data wordt nog steeds opgehaald? Anders zou je toch nooit de 74e rij kunnen opvragen ($rowData[73])? Of ik heb ergens een fout gemaakt, ik heb mijn oplossing verder niet getest.
Mocht het nog steeds niet naar behoren werken dan verwijs ik naar mijn vorige voorstel: geef een aantal rijen (2 a 3) van de input en geef aan hoe je wilt dat de output er uit ziet. Dat werkt gewoon een stuk makkelijker en kan ik de oplossing ook testen met concrete invoer.
Als ik heel eerlijk ben lijkt het erop dat je nog niet heel vaak of uitgebreid met multidimensionale arrays hebt gewerkt. Kan dit kloppen?
Het rijnummer heeft voor mij eigenlijk geen betekenis. Alleen de cellen, maar ik moet een loop hebben die door al mijn rijen gaat en de daarbij horende cellen meegeeft. Dus met bvb $rowData[73] ben ik niet veel omdat ik nooit weet hoeveel rijen er werkelijk zijn. Dat hangt af van projectsheet tot projectsheet.
Er zijn ook bepaalde rijen die geen data bevatten, dat zou ik dus later op kunnen oplossen door een if statement te zetten die een bepaalde cel in een rij gaat controleren of die niet leeg is en dan alle cellen laat weergeven onder die rij. Indien die cell wel leeg is zal de rij niet weergegeven worden.
Dus kortom, de $rowData[73] werkt perfect maar dit is maar 1 rij. Als ik die [73] door een $i zou kunnen vervangen van mijn for loop dan zijn we er toch? Of ben ik nu totaal verkeerd?
En... nee, ik heb heel weinig ervaring met multidimensional arrays, vandaar mijn vraag hier ;-)
Toevoeging op 19/04/2016 10:29:01:
Dit hieronder zijn de laatste 2 rijen van mijn gedecodeerde json, dus de $array (invoer voorbeeld):
De cellen die een lege value hebben krijgen dus enkel maar de columnId terug.
Een rowNumber terugkrijgen ipv een kolomID zou misschien ook niet slecht zijn. Dus romnummer en de bijhorende cellen (indien de laatste cell niet leeg is bvb, anders sla je het rijnummer over).
Het uitlezen van de oorspronkelijke data en daar de relevante data uitfilteren
en
het vervolgens uitlezen/nader inspecteren van deze gefilterde data
zijn twee aparte handelingen, die elk een verschillend doel dienen.
Om het overzicht te bewaren is het verstandig om deze in afzondering te behandelen, het zijn twee verschillende problemen.
In plaats van het in één slag willen oplossen van een probleem is het vaak makkelijker om in kleine, maar weloverwogen, stappen te werken naar het einddoel.
Dus kortom, de $rowData[73] werkt perfect maar dit is maar 1 rij. Als ik die [73] door een $i zou kunnen vervangen van mijn for loop dan zijn we er toch? Of ben ik nu totaal verkeerd?
Nee dat klopt wel denk ik, maar als ik de rest van je verhaal zo lees kun je de "cells" data nog wat verder filteren. Je voorselectie kan dus nog strakker zodat je enkel de data overhoudt waar het om gaat.
Wanneer beschouw je een "cells" item als leeg / niet interessant? Wanneer displayValue leeg is?
Ik neem aan dat het kolomnummer van "cells" wel op een of andere manier relevant is?
Verschillen de value en displayValue ooit?
En kan het inderdaad voorkomen dat geen van de data in de "cells" van een rij relevante informatie bevat, waarmee dus effectief de hele rij weggelaten kan worden uit de resultaten?