2017-12-07 1 views
-3
$string='to kill a mocking bird'; 

Ausgang benötigt wie unten FormatNeed String Bildung mit Platz in php

Ausgang:

‚ "Um einen spöttischen Vogel zu töten", "tokill einen Mocking Bird", "Tokilla mocking bird", "Tokillamocking bird", "Tokillamockingbird", , "Um eine Spottdrossel zu töten" , "Amockingbird zu töten" , "Zum killamockingbird" ';

I unten Script verwendet

$array = is_string($arg) ? str_split($arg) : $arg; 

if(1 === count($array)) 
    return $array; 


    $result = array(); 
    foreach($array as $key => $item) 
     foreach(permute(array_diff_key($array, array($key => $item))) as $p) 
      $result[] = $item .' '. $p; 
    return $result; 
+0

Was haben Sie bisher und was ist das Problem damit genau? – jeroen

+0

Ich wette, du hast schon etwas ausprobiert. Recht? – Andreas

+0

Ich muss oben Phrasen suchen mit Match gegen mit verschiedenen Formationen von Text ... dafür brauche ich es –

Antwort

0

ich es eine Anordnung Gebrauch zu machen, dass ich kann explodieren Schleife durch.
In der Schleife verwende ich implode, um Platz und array_slice hinzuzufügen, um die entsprechenden Wörter zu wählen, um Raum zwischen zu verbinden/hinzuzufügen.
Ich Schleife einmal vorwärts und einmal rückwärts, um alle Kombinationen zu erhalten.

$str='to kill a mocking bird'; 

$arr = explode(" ", $str); 
Echo $str."\n"; 

For($i=1;$i<count($arr);$i++){ 
    Echo implode("", array_slice($arr, 0,$i)) . implode(" ", array_slice($arr, $i)) . "\n"; 
} 

For($i=count($arr)-1;$i>1;$i--){ 
    Echo implode(" ", array_slice($arr, 0, $i)) . implode("", array_slice($arr,$i, count($arr))) . "\n"; 
} 

https://3v4l.org/QVIKG