String in Array parsen

Jens B.

Erfahrenes Mitglied
Hallo zusammen,

ich habe einen String, in etwa so:

Code:
name0=marcel&klasse0=11c&name1=katharina&klasse1=4b&name2=harald&klasse2=13a

Alles was ich damit machen will, ist das ganze nach Klassen sortiert ausgeben. Ich habe mir gesacht ich könnte den String in ein Array parsen und dann per Array.sort (oder so ähnlich...) das ganze sortieren und dann einfach ausgeben. Aber wie genau kann ich das da rein parsen? Habe es bereits bei der Forensuche und bei php.net versucht...

Vielen Dank
jens
 
Naja, damit kann ich jetzt auf die Variablen z.B. per $name0 zugreifen, aber ich kann sie nicht nach Klasse sortieren oder die Anzahl bestimmen, oder? Wie mache ich das?
 
Wie soll denn das Array dann aussehen ?
Oder was ist relevant, Name oder Klasse ?
 
Hmm Gumbo daran hatte ich auch schon gedacht, aber dann hätte ich ja so ein array

Code:
blubb[0]=hans peter
blubb[1]=11c
blubb[2]=henrike ebershauesen
bluss[3]=5d

Da könnte ich ja die Klassen und Namen nicht mehr auseinander halten, oder?
 
Am liebsten in Tabellenform... z.B.

Klasse..... Name
5a .......... lola renn
5a ........... elvis presley
11a ......... donato rimes
11b ......... tengmann stirn
 
Lösungsvorschlag:
Es gibt bestimmt besseres, aber selber einmal ausprobieren.

PHP:
<?php 
 
      $string ='name0=marcel&klasse0=11c&name1=katharina&klasse1=4b&name2=harald&klasse2=13a';
      
      $string_neu = preg_replace('/(.*?)(=)(.*?)(&)(.*?)(=)(.*?)(&{1})/is','$1$2$3$4$5$6$7|',$string);
      $daten = trim($string_neu);
      $daten_1 = explode('|',$daten);
      
      for($a=0;$a < count($daten_1);$a++){
         
          $daten_2[] = explode('&',$daten_1[$a]);      
         
          $daten_3[] = preg_replace('/(.*?)(=)(.*?)/is','$3',$daten_2[$a]);
      
      }
            
      echo '<pre>';// Test der Ausgabe!
      print_r($daten_3);
      echo '</pre>';
      
 ?>
 
Super, danke Ich werde mir diese 2 Zeilen

PHP:
$string_neu = preg_replace('/(.*?)(=)(.*?)(&)(.*?)(=)(.*?)(&{1})/is','$1$2$3$4$5$6$7|',$string);
      $daten = trim($string_neu);

noch einmal genau angucken weil ich die noch nicht so ganz verstehe, aber dann werde ich das genau so verwenden. Danke nochmal!
 
Zurück