Door
Aaron van den Berg
op 02-05-2018 21:25
gewijzigd op 02-05-2018 21:26
1.874 views
Ik heb twee multidimensionale arrays.
De eerste array bestaat uit: 1 Typenummer [TypeNumber], en een of meer nummers[Number] die daar bij horen.
(zie afbeelding hieronder) [img]https://image.ibb.co/hBeUOn/Screenshot_11.png[/img]
De tweede array bestaat ook uit een typenummer, die is hetzelfde als de vorige array.
Alleen deze array heeft ook nog Number's.
De bedoeling is dat hij van elk TypeNumber de juiste Number's ophaald en in een apparte array zet. [img]https://preview.ibb.co/iD9UOn/Screenshot_12.png[/img]
Ik hoop dat mijn afbeeldingen mij een beetje kunnen verduidelijken met wat ik bedoel, want heb het gevoel dat ik het niet heel goed uitleg..
Ik ben hier al een tijd mee bezig en kom er maar niet uit.
De bedoeling is dat hij van elk TypeNumber de juiste Number's ophaald en in een apparte array zet.
Maar dat is toch wat je al in array1 hebt staan?
Geef anders even aan wat je nu precies als eindresultaat wilt hebben (op basis van deze array 1 en 2). Maar volgens mij moet je gewoon met een paar foreach's aan de slag.
foreach($array1 as $record) if($record['TypeNumber'] == $wat_ik_zoek){ ... }
Array #2 is nogal een zooi. Textuele indexes gemixt met numerieke indexes? Kun je de manier waarop die arrays worden opgebouwd aanpassen of wordt het zo over de schutting gegooid?
Maar vervolgens moet je op een nogal omslachtige manier zoeken in array #2 :/.
Dit zal zoiets worden:
<?php
foreach ($array2 as $sub) {
// is dit array interessant?
if (isset($results[$sub['TypeNumber']])) {
// zoek in $sub en kijk of het subarray hiervan een Number veld heeft
$typeNumber = $sub['TypeNumber'];
foreach ($sub as $subsub) {
if (isset($subsub['Number']) && isset($results[$typeNumber][$subsub['Number']])) {
$results[$typeNumber][$subsub['Number']] = $subsub['PropertyDescription'];
}
}
}
}
?>
Dit garandeert mogelijk niet dat alle Number velden Description waarden hebben, tenzij array #2 voor alle Numbers (uit array #1) een Description bevat.
Heel erg bedankt Thomas! Ik ben hierdoor een heel stuk verder gekomen. En heb mijn probleem dankzij jou opgelost!
Thomas van den Heuvel op 02/05/2018 23:08:38
Array #2 is nogal een zooi. Textuele indexes gemixt met numerieke indexes? Kun je de manier waarop die arrays worden opgebouwd aanpassen of wordt het zo over de schutting gegooid?
Maar vervolgens moet je op een nogal omslachtige manier zoeken in array #2 :/.
Dit zal zoiets worden:
<?php
foreach ($array2 as $sub) {
// is dit array interessant?
if (isset($results[$sub['TypeNumber']])) {
// zoek in $sub en kijk of het subarray hiervan een Number veld heeft
$typeNumber = $sub['TypeNumber'];
foreach ($sub as $subsub) {
if (isset($subsub['Number']) && isset($results[$typeNumber][$subsub['Number']])) {
$results[$typeNumber][$subsub['Number']] = $subsub['PropertyDescription'];
}
}
}
}
?>
Dit garandeert mogelijk niet dat alle Number velden Description waarden hebben, tenzij array #2 voor alle Numbers (uit array #1) een Description bevat.