Sponsor-Board.de
String auswerten und Sortieren

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: String auswerten und Sortieren (/showthread.php?tid=48956)


String auswerten und Sortieren - Garfield200508 - 20.06.2014 13:26

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?


RE: String auswerten und Sortieren - sic_ - 20.06.2014 18:19

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));