-2

PHP foreachループ内で、人の名前がループしています。ただし、ループの外側では、ループ内で使用される最大の長さを決定したいと思います。したがって、ループ内に6つの名前があり、それらのほとんどは6〜8文字の長さである可能性がありますが、1つは12文字である可能性があります。だから私は最大の量を見つけたいと思います。

4

3 に答える 3

2
$longest = '';
foreach($names as $name) {
    if(strlen($name) > strlen($longest)) {
        $longest = $name;
    }
}
于 2013-01-27T13:09:27.973 に答える
1

より明白なものからのバリエーションとして、機能的な実装を検討してください。

$longest = array_reduce($names, function($longest, $candidate) {
    return strlen($longest) >= strlen($candidate) ? $longest : $candidate;
});
于 2013-01-27T13:13:04.083 に答える
0
$info = array();

$names = array("Name 1","Name 2","Name 3","This is the longest string","Name 4");

foreach($names as $key=>$value) {
    if(empty($info) || strlen($value) > $info[1]) {
        $info[0] = $key;
        $info[1] = strlen($value);
    }
}

echo 'The longest value is ', $names[$info[0]], ' which has ', $info[1], ' charachters and its array index is ', $info[0];
于 2013-01-27T13:13:57.030 に答える