<分区>
给定一个数组,我想在不使用 foreach 循环的情况下按长度获取最长的字符串。
下面是我的数组
$array = array(
'Google',
'Facebook',
'Twitter',
'Slack',
'Twilio',
);
这道题返回的是最大长度但是我想获取字符串的值。 PHP shortest/longest string in array
<分区>
给定一个数组,我想在不使用 foreach 循环的情况下按长度获取最长的字符串。
下面是我的数组
$array = array(
'Google',
'Facebook',
'Twitter',
'Slack',
'Twilio',
);
这道题返回的是最大长度但是我想获取字符串的值。 PHP shortest/longest string in array
最佳答案
您可以使用例如 usort 按长度对字符串进行排序并使用 reset 获取第一项.
$array = array(
'Google',
'Facebook',
'Twitter',
'Slack',
'Twilio',
);
usort($array, function ($a, $b) {
return strlen($a) < strlen($b);
});
echo reset($array); // Facebook
如果可以有更多长度相等的字符串,您可以使用 foreach 并在长度不等于项目的当前长度时跳出循环,以防止循环整个列表。
$item = reset($array);
$result = [];
if ($item) {
$len = strlen($item);
foreach($array as $value) {
if (strlen($value) === $len) {
$result[] = $value;
continue;
}
break;
}
}
print_r($result);
结果
Array
(
[0] => Facebook
[1] => Test1112
)
关于PHP在没有循环的情况下获取数组中最长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57017579/