Как найти наибольшее число, самая длинная строка, наибольшее количесвто элементов в массиве PHP
Array
(
[0] => Array
(
[0] => true
[1] => 515
[2] => Array
(
[0] => zzbFXOV4wZQRRbNgvLj0sgsI3DiKJu5LfU2bfkSbB80dVZ8B05ybTOEOiYv5Hsp
[1] => Array
(
[0] => 3706
[1] => 95.65
[2] => 7927
[3] => 6560
[4] => true
)
[2] => 0ShfxbVHxYOdviCtgeIqOv0gMbFDhKGpGilDASf2KDLSVOAOhRPzZEU0q2aYD8UnxbedyNk9pNni2Foxe5ldjUaYC9N
[3] => false
[4] => true
)
[3] => ofqT02x0nJI3bAws891YLm42BU1e2wf8vvZI
[4] => wneV2leNMsAgHA8pT5o9FAWOl1uDDVkVl7xNMAqT8zBk
)
[1] => 1668
[2] => 3287
[3] => 64.1
)
Есть вот такой массив, подскажите как найти в нем наибольшее число, самую длинную строку, и массив содержащий самое большое количество элементов.
При этом массив всегда генерируется рандомно, у него может быть любая вложенность и любое количество элементов.
Ответы (1 шт):
Автор решения: Вадим Александру
→ Ссылка
Пожалуйста
$array = [
0,
[
55,
"abc",
[
'acaaaaza',
[11111]
],
"abcds",
0
]
];
function calc($array, $maxNumber = null, $maxString = null, $maxArray = null) {
foreach ($array as $value) {
if(is_string($value)) {
if($maxString === null || (strlen($maxString) < strlen($value))) {
$maxString = $value;
}
}
if(is_numeric($value)) {
if($maxNumber === null || $maxNumber < $value) {
$maxNumber = $value;
}
}
if(is_array($value)) {
if($maxArray === null || (count($maxArray) < count($value))) {
$maxArray = $value;
}
list($maxNumber, $maxString, $maxArray) = calc($value, $maxNumber, $maxString, $maxArray);
}
}
return [$maxNumber, $maxString, $maxArray];
}
$result = calc($array);
echo "Найбольшее число: " . $result[0] . PHP_EOL;
echo "Найдлиннейшая строка: " . $result[1] . PHP_EOL;
echo "Массив содержащий самое большое количество элементов: " . count($result[2]) . PHP_EOL;
/*
* Вывод
Найбольшее число: 11111
Найдлиннейшая строка: acaaaaza
Массив содержащий самое большое количество элементов: 5
*/