2017-03-13 2 views
0

Ich erstelle eine Schätzung der Synonym-Spielbasis von welchem ​​Namen der Benutzer am Anfang eingeben. Für jetzt habe ich hart die Werte kodiert, $word, $str, $clueWie wird eine Zeichenfolge mit einem einzelnen Zeichen gesucht?

Ich zeige die Wörter in einer Tabelle an, jede Reihe hat zwei Zeichenketten. Der eine ist der Hinweis, der Ihnen einen Hinweis darauf gibt, was das Synonym ist und dann das Synonym für sich selbst.

Also, ich für das Leben von cant/weiß nicht, wie man ein einzelnes Zeichen mit einer Folge von Zeichen zu vergleichen. Ich habe versucht strpos(), strstr(), aber vergleicht den String Buchstaben für den Buchstaben: 'Con'rad -' Con'cept.

Was ich suche ist etwas entlang der Linie von dem, was ich habe unten:

  • Conrad die Buchstaben C auf alle Zeichen im Wort Konzept
  • Conrad vergleicht den Buchstaben O für alle vergleichen das Zeichen in dem Wort Unterstützung
  • Conrad die Buchstaben N auf alle Zeichen im Wort Entwurf
  • Conrad die Buchstaben R auf alle Zeichen in dem frischen Wort
  • Conrad co vergleichen vergleichen mpare die Buchstaben A auf alle Zeichen im Wort Aged
  • Conrad die Buchstaben D auf alle Zeichen im Glad Wort vergleichen

Hier ist der Code:

<!DOCTYPE html> 
<html> 
<head> 
<title>Show Me</title> 
<meta charset="UTF-8"> 
<link rel="stylesheet" href="css/reset.css"> 
<link rel="stylesheet" href="css/style.css"> 

<style> 
    table{ 
     margin: 0 auto; 
    } 
    th{ 
     background-color:#CAD704; 
     padding: 10px; 
     text-align: left;} 
    td{ 
     vertical-align: middle; 
     padding-left: 5px; 
     } 

    tr:nth-child(even) {background: #ECF0CB} 
    tr:nth-child(odd) {background: #F6F8E7} 

    .floating-box { 
     float: left; 
     width: 30px; 
     height: 30px; 
     margin: 5px; 

    } 

    input[type="text"] { 
     width: 25px; 
     height: 25px; 
    } 
    input.char[type="text"] { 
     width: 25px; 
     height: 25px; 
     background-color : #d1d1d1; 
    } 
    .button { 
     background-color: #76AEEB; /* Green */ 
     border: 1px solid black; 
     color: white; 
     padding: 15px 32px; 
     text-align: center; 
     text-decoration: none; 
     display: inline-block; 
     font-size: 16px; 
     margin: 15px 2px; 
     cursor: pointer; 
     width: 150px; 
    }  

    .sub {border-radius: 12px;}  
</style> 
<?php 

$word ="Conrad"; 

$str = array("Concept", "Support", "Design", "Fresh", "Aged","Glad"); 
$clue = array("Idea", "Keep", "Make","New", "Old", "Happy"); 

echo $test = implode(" ", $str) , " <b>Implode</b> <br />"; 
echo $cluestr = implode(" ", $clue) , " <b>Implode</b> <br />"; 

$strlen = strlen($test); 
$strlen2 = strlen($cluestr); 

echo $count = count($str). " elements in array <br />"; 
echo $count2 = count($clue). " elements in array <br />"; 

echo $strlen , " string length<br />"; 
echo $strlen2 , " string length<br />"; 

echo $test , " String <br />"; 
echo $cluestr , " String <br /><br />"; 


?> 


<div id="content"> 
<table> 
<tr> 
    <th>Clue</th><th colspan="100">Synonym</th> 
    </tr> 
    <tr> 
     <!-- This is the start --> 
<?php 
    $p = 0;  
    $h = 0; 
    for($i = 0; $i <= $strlen; $i++) { 

      if ($p == 0){ 
       echo "<td> $clue[$h]</td>"; 
       $h++; 
      } 
     $charW = substr($word, $i, 1);  
     $char = substr($test, $i, 1); 

     if($char == " " || $char ==""){ 
     echo" 
      <td style='visibility: hidden;'> 
       <div class='floating-box'> 
        <input type='text' maxlength='1'> 
       </div> 
      </td> 
      <td style='visibility: hidden;'> 
       <div class='floating-box'> 
        <input type='text' maxlength='1'> 
       </div> 
      </td> 
     </tr> 
     <tr>"; 
      $p=0; 
     continue; 
     }else { 
      echo "<td> 
        <div class='floating-box'> 
         <input type='text' value='$char' maxlength='1' class='char'> 
        </div> 
       </td>"; 
     } 
     $p++; 
    } 


     ?>    
     <!-- The end --> 

    </tr> 
    </table> 
    </div> 
    </body> 

Wenn etwas nicht sinnvoll ist, lass es mich wissen und ich versuche es besser zu klären.

Antwort

2

hier eine einfache Implementierung:

$string = "conrad"; 
$array = ['Concept', 'Support', 'Design', 'Fresh', 'Aged', 'Glad']; 

for ($i = 0, $n = strlen($string); $i < $n; $i++) { 
    if (strstr(strtolower($array[$i]), strtolower($string[$i]))) { 
     echo $string[$i] . " belongs to " . $array[$i] . "\n"; 
    } else { 
     echo "fail\n"; 
    } 
} 

Ausgang:

c belongs to Concept 
o belongs to Support 
n belongs to Design 
r belongs to Fresh 
a belongs to Aged 
d belongs to Glad 

Live-Beispiel: https://3v4l.org/k9A5K

+0

Danke für die Hilfe und die Website, die Sie ein funktionierendes Beispiel posted on ist ziemlich cool und nützlich, also danke für beide. – poohbear

2

Hier ist eine andere Alternative:

$word = 'conrad'; 
$array = ['Concept', 'Support', 'Design', 'Fresh', 'Aged', 'Glad']; 

foreach(str_split($word) as $position => $letter) { 
    if(stripos($array[$position], $letter) !== false) { 
     echo "$letter found in $array[$position]<br>\n"; 
    } 
} 
    Split
  • das Wort in Buchstaben und Schleife sie, Freilegung der Position
  • prüft für die Buchstaben im Wort an derselben Position Groß- und Kleinschreibung
+0

Danke für die Hilfe und erklären, was in Ihrem Code passiert! Es gibt keine Möglichkeit, es so bald wie möglich zu finden. – poohbear

Verwandte Themen