我正在尝试取两个字符串并按字母顺序打印出来。例如,我正在使用他们的名字和姓氏。如果名字< =姓氏(例如亚当苹果),则打印出“名字=亚当姓氏= Apple”否则打印出姓氏=姓氏是什么,名字=姓名是什么。它来自Post数据,这是我的代码。
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/>";
}
}
感谢。
答案 0 :(得分:1)
您想要if (strcmp($fullnameArray[0], $fullnameArray[1]) < 0)
。
见the PHP.net description of strcmp。如果您关心混合大小写,则可能需要strcasecmp
。
答案 1 :(得分: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";