Sponsor-Board.de

Normale Version: String auswerten und Sortieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, also ich habe hier folgendes problem.

Ich wurde gefragt, wie man einen String auswertden kann in dem Wörter durcheinnander stehen mit den Ansätzen wie _1_4 (Satz1 Wort4) oder _2_7 (Satz2 Wort4)

da ich darauf keine Direkte antwort hatte habe ich mich da mal dran gesetzt und bereits den Codeschnippsel gefriemelt.

PHP-Code:
$string 'nicht_2_3 die_3_5 kennen-_2_9 ist_1_7 wird_2_11 verlernt,_1_6 Leistungsfähigkeit_3_6 davon;_2_13 nicht_2_16 man_1_15 man_2_19 Erfolg._3_9 Gegenteil_2_22 wie_1_3 der_3_8 ist_2_2 ruhen,_2_17 auch_2_20 lernen,_1_13 Sache_2_7 ist_3_7 schwerer_1_8 kennt._2_23 zu_2_8 eine_2_6 für_3_4 wie_1_14 zu_1_9 recht,_2_4 beste_3_2 Zu_1_1 dumm_2_12 das_2_21 lernt._1_16 lernen,_1_10 sollte_2_15 bis_2_18 zu_1_12 man_1_4 nur_2_5 Aufputschmittel_3_3 als_1_11 lernen,_1_2 man_2_19 Das_3_1 wieder_1_5 man_2_14 Es_2_1';
$a_array explode(' '$string);

for(
$i=1$i<5$i++) {
  
$pattern '_'.$i.'_';
  
$b_array preg_grep('/'.$pattern.'.*/'$a_array);
  if(empty(
$b_array)) continue;
  echo 
"Das wird der ".$i.". Satz:<br>";
  
$b_array str_replace($pattern"_"$b_array);



nun wird mir wenn ich auf $b_array ein Print_r() setze der Array ausgegeben, aber habe ja hinten noch die _4 (Wortposition) dran.

Nun muss ich das da noch abschneiden und dann aber nach diesen Zahlen Sortieren. Wie kann ich das am Besten machen?

Ich glaube das ist nicht was du suchst, aber schau dir das mal an, es könnte als Vorstufe nützlich sein:

PHP-Code:
$text       'nicht_2_3 die_3_5 kennen-_2_9 ist_1_7 wird_2_11 verlernt,_1_6 Leistungsfähigkeit_3_6 davon;_2_13 nicht_2_16 man_1_15 man_2_19 Erfolg._3_9 Gegenteil_2_22 wie_1_3 der_3_8 ist_2_2 ruhen,_2_17 auch_2_20 lernen,_1_13 Sache_2_7 ist_3_7 schwerer_1_8 kennt._2_23 zu_2_8 eine_2_6 für_3_4 wie_1_14 zu_1_9 recht,_2_4 beste_3_2 Zu_1_1 dumm_2_12 das_2_21 lernt._1_16 lernen,_1_10 sollte_2_15 bis_2_18 zu_1_12 man_1_4 nur_2_5 Aufputschmittel_3_3 als_1_11 lernen,_1_2 man_2_19 Das_3_1 wieder_1_5 man_2_14 Es_2_1';
$words      explode(' '$text);
$results    = array();

foreach (
$words as $word) {
    
$pos    strpos($word'_');
    
$coords substr($word$pos 1);
    
$coords explode('_'$coords);
    
$word   substr($word0$pos);

    
$results[$coords[0].sprintf('%02s'$coords[1])] = $word;
}

ksort($results);
die(
var_dump($results)); 

Referenz-URLs