Ik heb een array met een aantal variabelen. Nu wil ik graag de regels in de array weergeven per variabele (AA en BB) . Hoe kan ik dat doen.

Dus ik heb bijvoorbeeld:
[0] x
[1] x
[2] x
[3] x

Nu wil ik graag als uitkomst:

x

je array multidimensionaal maken en associatief:
<?php
$toparray = Array();
$toparray['AA'] = Array();
$toparray['AA'][] = Array(1,'Z','Q');
//enzovoort
?>
De array is maar een voorbeeld. Er kunnen nog meer regels e.d in de array zitten.
Uit de array haal ik eerst alle variabele AA's en BB's enzovoort.
Vervolgens maak ik deze uniek. En daarna wil ik dus per kopje (AA, BB, enzovoort) de resultaten weergeven van alleen AA en BB, enzovoort.

Ik hoop dat het zo wat duidelijker is?
Wat ger zegt kan je gewoon toe passen hoor, je structuur komt er dan zo uit te zien:

array(
  ['AA'] => array(
       array(1,'Z','Q'),
       array(),
       array(2,'R','U')
  },
  ['BB'] => array(
       array(),
       array(2,5,'5')
  )
)


Om iets weer te geven wil je vaak een duidelijke structuur, de meeste data valt goed op te delen in een structuur.

Dus het probleem bij de bron aanpakken, dan wordt het ineens een stuk makkelijker om dingen weer te geven:


 <?php
   foreach($array['AA'] as $waarde){
      echo $waarde . '<br/>';
   }
 ?>


En als dat niet kan, dan raad ik je aan om met bv explode() het alsnog in een structuur te zetten.
Waarschijnlijk ligt het aan mij, maar ik krijg nog niet het juiste resultaat.

Ik heb dus 2 arrays (AA, BB, enzovoort) en (AA,1,Z,Q enzovoort)

AA is dus niet echt een waarde maar een variabele array.
Je kunt beter even een "echt" voorbeeldje geven van een paar arrays dan wordt het wat duidelijker wat je precies bedoelt.
Hiermee haal krijg ik de brinnummers waar ik op wil sorteren, dus de AA en BB enzovoort

$brinnrs = array();

if( $betrekkingen )
{
for( $y = 0; $y < count( $betrekkingen ); $y++ )
{

$brinnr = $betrekkingen[ $y ]->getBrinnummer();
$brinnrs[] = $brinnr;
}
}

Vervolgens ga ik de array uniek maken en wil ik de resultaten per brinnummer weergeven:
$result = array_unique($brinnrs);
$bns = array_merge($result);
$array = $bns;
$bn = array();

foreach($array as $value)
{
$bn[] = $value;
}

for( $z = 0; $z < count( $bn ); $z++ )
{
<td><b><? echo $bn[$z]; ?></b></td>

En dan het stuk wat niet goed is dus. Ik wil dus alle betrekkingen per brinnummer laten zien:

$soorten = array();
$functies = array();
$ingangsdata = array();
$einddata = array();
$expiratiedata = array();
$wtfs = array();
$urls = array();
$brinnrs = array();
$schoolnamen = array();

if( $betrekkingen )
{
for( $x = 0; $x < count( $betrekkingen ); $x++ )
{
$soort = $betrekkingen[ $x ]->getSoortdvb();
$functie = $betrekkingen[ $x ]->getFunctie();
$ingangsdatum = $betrekkingen[ $x ]->getIngangsdatum();
$einddatum = $betrekkingen[ $x ]->getVerloopdatum();
$expiratiedatum = $betrekkingen[ $x ]->getExpiratiedatum();
$wtf = $betrekkingen[ $x ]->getWtf();
$bid = $betrekkingen[ $x ]->getBetrekkingid();
$brinnr = $betrekkingen[ $x ]->getBrinnummer();
$school = getSchool( $brinnr );
$schoolnaam = ( $school ) ? $school->getSchoolnaam() : $brinnr;

$soorten[] = ( $soort == "V" ) ? "Vast" : "Tijdelijk";
$functies[] = $functie;
$ingangsdata[] = formatdate( $ingangsdatum );
$einddata[] = formatdate( $einddatum );
$expiratiedata[] = formatdate( $expiratiedatum );
$wtfs[] = $wtf;
$urls[] = $bid;
$brinnrs[] = $brinnr;
$schoolnamen[] = $schoolnaam;
}
}

if( count( $betrekkingen ) == 0 ) // Check if any betrekkingen are availeble
{
?> <div class="meldingen-fout">Geen betrekkingen gevonden</div>
<?
}
else
{
for( $x = 0; $x < count( $betrekkingen ); $x++ )
{

?> <tr style="cursor:pointer;" title="Klik hier om de details te bekijken" onmouseover="ChangeColor(this, true);" onmouseout="ChangeColor(this, false);" onclick="details('<? echo $urls[ $x ]; ?>');" >
<td><? echo $brinnrs[ $x ]; ?></td>
<td><? echo $schoolnamen[ $x ]; ?></td>
<td><? echo $soorten[ $x ]; ?></td>
<td><? echo $functies[ $x ]; ?></td>
<td><? echo $ingangsdata[ $x ]; ?></td>
<td><? echo $einddata[ $x ]; ?></td>
<td><? echo $expiratiedata[ $x ]; ?></td>
<td><? echo $wtfs[ $x ]; ?></td>
</tr>

Het is niet de volledige code, maar ik hoop dat jullie er wijs uit worden. Het laatste stuk klopt helemaal niet maar ik zie het even niet meer.
Ik heb het idee dat je jezelf veel moelijker maakt dan nodig.
$betrekkingen is al een object, doe eens een print_r($betrekkingen) en post het resultaat hier.
Dat denk ik ook, hier het resultaat:

Array ( [0] => betrekking Object ( [_betrekkingid] => 54464 [_sofinummer] => 106672721 [_brinnummer] => 05UE [_functie] => Medewerker PSA [_soortdvb] => V [_redentijdelijk] => [_ingangsdatum] => 2010-03-15 [_verloopdatum] => 0000-00-00 [_expiratiedatum] => 0000-00-00 [_redenontslag] => [_wtftype] => Lesuren [_maandag] => 1 [_dinsdag] => 1 [_woensdag] => 1 [_donderdag] => 1 [_vrijdag] => 1 [_aantalupw] => [_aantalwwpj] => [_wtf] => 1.0000 [_wtfbapo] => [_kostenplaatsnummer] => [_opmerkingen] => [_ondertekennaam] => Akorda [_ondertekenfunctie] => Niet printen [_ondertekendatum] => 2011-11-29 08:12:48 ) [1] => betrekking Object ( [_betrekkingid] => 54465 [_sofinummer] => 106672721 [_brinnummer] => 05UE [_functie] => Medewerker PSA [_soortdvb] => V [_redentijdelijk] => [_ingangsdatum] => 2011-01-01 [_verloopdatum] => 2011-08-01 [_expiratiedatum] => 0000-00-00 [_redenontslag] => Geen reden [_wtftype] => Lesuren [_maandag] => 0 [_dinsdag] => 0 [_woensdag] => 0 [_donderdag] => 0 [_vrijdag] => 1 [_aantalupw] => [_aantalwwpj] => [_wtf] => 0.4730 [_wtfbapo] => [_kostenplaatsnummer] => [_opmerkingen] => [_ondertekennaam] => Akorda [_ondertekenfunctie] => Niet printen [_ondertekendatum] => 2011-11-29 09:36:14 ) [2] => betrekking Object ( [_betrekkingid] => 54466 [_sofinummer] => 106672721 [_brinnummer] => 10KQ [_functie] => Systeembeheerder [_soortdvb] => T [_redentijdelijk] => ICT [_ingangsdatum] => 2011-01-01 [_verloopdatum] => 0000-00-00 [_expiratiedatum] => 2012-01-01 [_redenontslag] => [_wtftype] => Werkuren [_maandag] => 1 [_dinsdag] => 0 [_woensdag] => 0 [_donderdag] => 0 [_vrijdag] => 1 [_aantalupw] => [_aantalwwpj] => [_wtf] => 0.2526 [_wtfbapo] => [_kostenplaatsnummer] => [_opmerkingen] => [_ondertekennaam] => R. Klein [_ondertekenfunctie] => Directeur [_ondertekendatum] => 2011-11-29 08:33:17 ) )
Oké nu snap ik waarom je het eerst in een array moet proppen.
Kan je hier iets mee?:
<?php
$brinarray = array();
//loop door de betrekkingen en maak een assoc array met brinnummer als key
for ($i=0;$i < count($betrekkingen); $i++) {
	$brinnr = $betrekkingen[i]->getBrinnummer();
	if (!isset($brinarray[$brinnr])) $brinarray[$brinnr] = array();
	$soort= $betrekkingen(i)->getSoortdvb()
	$school = getSchool($brinnr);
	$brinarray[$brinnr][] = array('soort' => ($soort=='V') ? 'Vast' : 'Tijdelijk',
								  'functie' => $betrekkingen[i]->getFunctie(),
								  'ingangsdatum' => formatdate($betrekkingen->getIngangsdatum),
								  //.....
								  'schoolnaam' => ($school) ? $school->getSchoolnaam : $brinnr);
}
//je hebt nu een multidimensionale array
//deze ga je doorlopen met eem foreach
//we maken eerst een var voor het huidige brinnr waar de foreach zich bevind
$curbrin = '';
foreach($brinarray as $brinkey => $brinvalue) {
	if ($brinkey != $curbrin) {
		$curbrin = $brinkey;
		//hier nieuwe table enz.
	}
	//$brinvalue is ook weer een array
	foreach($brinvalue as $data) {
		echo $data['soort'];
		//enzovoort
	}
}
?>


PS. probeer zo min mogelijk te switchen tussen PHP en HTML, dat maakt je code veel beter leesbaar, en je bent toch al aan het echoen.
Nee sorry ik krijg er geen enkel resultaat uit.

[size=xsmall]Toevoeging op 30/11/2011 14:11:08:[/size]

Ik zie nu dat er wat foutjes in het script stonden en krijg nu in ieder geval een array, maar nog steeds niet de juiste output. moet er nog wat tussen echo $data'soort']. Want als ik namelijk een 1 ertussen zet krijg wel resultaat echo $data[1]['soort']. Maar het lijkt me dat dat een variabele moet zijn. Volgens mij is de array wel goed alleen het laatste stuk nog niet, klopt dat?

Reageren