检查字符串的值是否高于或低于php中的另一个字符串

时间:2012-03-01 01:09:42

标签: php arrays post

我正在尝试取两个字符串并按字母顺序打印出来。例如,我正在使用他们的名字和姓氏。如果名字< =姓氏(例如亚当苹果),则打印出“名字=亚当姓氏= 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/>";
        }
}

感谢。

2 个答案:

答案 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";