PHP 数组中最短/最长字符串长度

2022-08-30 12:26:53

我有一个这样的数组

$data = array(
    "163",
    "630",
    "43",
    "924",
    "4",
    "54"
);

我如何根据字符串长度而不是数字值从中选择最小值和最大值(对于此示例,它是 1(最小)和 3(最大)。


答案 1

似乎你应该使用array_map()

  // Convert array to an array of string lengths
$lengths = array_map('strlen', $data);

  // Show min and max string length
echo "The shortest is " . min($lengths) .
     ". The longest is " . max($lengths);

请注意,数组是未排序的,因此您可以轻松检索每个字符串长度的相应数字。$lengths


答案 2

以下是brian_d代码的改进版本:

$min = PHP_INT_MAX;
$max = -1;

foreach ($data as $a) {
    $length = strlen($a);
    $max = max($max, $length);
    $min = min($min, $length);
}