在循环中实现strlen()

时间:2014-06-15 13:48:28

标签: php string function loops for-loop

我这里有一个字符串,里面有学生的名字(leerlingen),我试图在这里练习。 代码显示完整字符串的长度。

接下来将使用循环来检查谁拥有最长的名称,但是如何在循环中实现strlen()?     

// change the string into an array using the explode() function
$sleerlingen = "Kevin,Maarten,Thomas,Mahamad,Dennis,Kim,Joey,Teun,Sven,Tony";

$namen = explode(" ", $sleerlingen);
echo $namen[0];

echo "<br><br>";

//determin the longest name by using a loop
// ask length
$arraylength = strlen($sleerlingen);
sleerlingen = $i;
for ($i = 1; $i <= 10; $i++) {
echo $i;
}

echo $arraylength;
?>

2 个答案:

答案 0 :(得分:1)

您在explode函数中使用了错误的分隔符,在字符串中没有空格。

这应该有效(我没试过)。在foreach循环中,您可以检查最长的当前长度,如果电流更长,只需将其保存为最长。

<?php
    $sleerlingen = "Kevin,Maarten,Thomas,Mahamad,Dennis,Kim,Joey,Teun,Sven,Tony";

    $names = explode(',', $sleerlingen);
    $longest;
    $longest_length = 0;

    foreach ($names as $item) {
        if (strlen($item) > $longest_length) {
            $longest_length = strlen($item);
            $longest = $item;
        }
    }

    echo 'Longest name: ' . $longest . ', ' . $longest_length .' chars.';
?>

答案 1 :(得分:1)

您可以创建自定义排序功能,以根据字符串长度对数组进行排序。然后你可以轻松地获取数组中的第一个键。

<?php
$sleerlingen = "Kevin,Maarten,Thomas,Mahamad,Dennis,Kim,Joey,Teun,Sven,Tony";
$namen = explode(",", $sleerlingen); // changed the space to comma, otherwise it won't create an array of the string.

function sortByLength($a,$b){
    return strlen($b)-strlen($a);
}

usort($namen,'sortByLength');

echo $namen[0];
?>