Auge: 2x foreach und Daten in 1 Array

Beitrag lesen

Hallo

array[0]
{
'id' => '11',
'title' => 'der titel',
'id2' => '22',
'description' => '....'
}


>   
> und nicht so:  
>   
> ~~~php
  

> array[0]  
> {  
> 'id' => '11',  
> 'title' => 'der titel',  
>   
> }  
> array[1]  
> {  
> 'id2' => '22',  
> 'description' => '....'  
> }  
> 

Lösung 1: Du führst in der äußeren Schleife einen Zähler mit, den du verwendest, um den in der inneren Schleife gefundenen korrekten Eintrag anzusprechen. Das ist ungünstig, weil zwei Schleifen ineinander verschachtelt eine lange Laufzeit nach sich zieht.

$i = 0;  
$ausgabe = array();  
  
foreach ($ergebnis1 as $erg1) {  
  $ausgabe[$i] = $erg1;  
  foreach ($ergebnis2 as $erg2) {  
    if ($bedingung === true) {  
      $ausgabe[$i]['id2'] = $erg2['id2'];  
      $ausgabe[$i]['description'] = $erg2['description'];  
      // wir haben das Ergebnis und müssen den Rest  
      // der Schleife nicht mehr durchlaufen  
      break;  
    }  
  }  
  $i++;  
}

Um einiges günstiger ist es, die Datenbankabfrage so zu formulieren, dass alle benötigten Daten nach einer Abfrage aus der Datenbank fallen. Keine Nachbearbeitung, keine ineinander verschachtelten Schleifen, keine zusätzliche Laufzeit. Wie das in deinem Fall zu formulieren ist, kann dir ohne Beispieldaten und einer Beschreibung des gewünschten Ergebnisses keiner sagen.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3