2012-03-01 8 views
0

2つの文字列をアルファベット順に出力しようとしています。たとえば、私は彼らの名字をとっています。最初の名前が< =姓(例:adam apple)の場合、「First name = Adam last name = Apple」と表示されます。そうでない場合は姓を印刷します。それはポストのデータから来ています、ここに私のコードです。文字列の値がPHPの別の文字列よりも高いか低いかを確認

if (isset($_POST["name"])){ 
    $fullname=$_POST["name"]; 
    if (!empty($fullname)){ 
     $fullnameArray = explode(" ", $fullname); 
     if ($fullnameArray[0] <= $fullnameArray[1]){ 
      echo "First name: " . $fullnameArray[0]; 
      echo "<br/>"; 
      echo "Last Name: " . $fullnameArray[1]; 
     }else{ 
      echo "Last name: " . $fullnameArray[1]; 
      echo "<br/>"; 
      echo "First Name: " . $fullnameArray[0]; 
     } 
     echo "<br/>"; 
     }else{ 
      echo "Please enter your first and last name."; 
      echo "<br/>"; 
     } 
} 

ありがとうございます。

+2

http://php.net/manual/en/function.strcmp.php – scibuff

+0

ありがとうございました。 – stytown

+0

もそうです** Apple Adam **返品**「ファーストネーム:アダム」**と**「ラストネーム:アップル」**? – inhan

答えて

1

あなたはif (strcmp($fullnameArray[0], $fullnameArray[1]) < 0)が必要です。

the PHP.net description of strcmpを参照してください。大文字と小文字が混在する場合は、代わりにstrcasecmpが必要です。

+0

パーフェクト、ありがとう。 – stytown

0

ここでは、短いが読みにくいバージョンです。

$fullnameArray = explode(' ', $fullname, 2); 
$ordered = strcasecmp($fullnameArray[0], $fullnameArray[1]) < 0; 
$fullnameArray[0] = ($ordered ? 'First' : 'Last') . ' name: ' . $fullnameArray[0]; 
$fullnameArray[1] = ($ordered ? 'Last' : 'First') . ' name: ' . $fullnameArray[1]; 
echo implode("\n<br/>", $fullnameArray) . "\n<br/>\n"; 
+0

John Jay Ramonのように2つ以上の単語を入力するとどうなりますか?そのエラーをどのように修正しますか? – stytown

+0

最初の2桁の入力で、どちらが名前で、どちらが姓であるかはどのようにわかりますか? – inhan

関連する問題