我这里有一个字符串,里面有学生的名字(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;
?>
答案 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];
?>