PHP在没有循环的情况下获取数组中最长的字符串

标签 php arrays

<分区>

给定一个数组,我想在不使用 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 demo

关于PHP在没有循环的情况下获取数组中最长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57017579/

相关文章:

php - 去除PHP中json_encode中多维数组的int索引

php - 在fuelphp中查询数据库的更好方法是什么?

php - 将 Python 列表传递给 PHP - 只能通过 JSON 实现?

javascript - 从 javascript 对象列表中删除对象

php - 多选 MySQL 数据中的复选框,用逗号 (,) 分隔

php - mysql_affected_rows 在成功查询时返回 False?

javascript - 如何删除对象的键和值之间的空格

c# - 更改/访问矩阵元素的最佳/最快方法

c - 数组和 scanf 输入是否齐头并进?

php - 引用 - 这个错误在 PHP 中意味着什么?