Как можно в PHP легко и красиво извлечь значение "label" из массива с максимальным значением "number" среди вложенных массивов, представленного следующим образом?
<pre><code class="php">$array = [
[
"label" => "Bad",
"number" => 0.99999895728755
],
[
"label" => "Good",
"number" => 4.2713489950201E-8
]
];</code></pre>
Чтобы найти наибольшее значение в многомерных массивах и извлечь значение `label` из массива с максимальным значением `number`, вы можете использовать следующие методы в PHP.
Вот пример кода, который сделает это:
```php
$array = [
[
"label" => "Bad",
"number" => 0.99999895728755
],
[
"label" => "Good",
"number" => 4.2713489950201E-8
]
];
$maxValue = null;
$label = '';
foreach ($array as $item) {
if ($maxValue === null || $item['number'] > $maxValue) {
$maxValue = $item['number'];
$label = $item['label'];
}
}
echo "Label with the maximum number: " . $label;
```
### Объяснение кода:
1. Мы инициализируем переменные `$maxValue` как `null` и `$label` как пустую строку.
2. Затем мы проходимся по каждому элементу массива `$array`.
3. Сравниваем `number` текущего элемента с `$maxValue`. Если `$maxValue` равен `null` или `number` текущего элемента больше `$maxValue`, мы обновляем `$maxValue` и сохраняем соответствующий `label`.
4. В конце мы выводим `label` с максимальным значением `number`.
Этот код эффективно находит `label` с наибольшим значением `number` в подмассивах.
<pre><code class="php">$array = [
[
"label" => "Bad",
"number" => 0.99999895728755
],
[
"label" => "Good",
"number" => 4.2713489950201E-8
]
];
$max = array_reduce($array, fn($a, $i) => $i['number'] > $a['number'] ? $i : $a, $array[0]);
var_dump($max);</code></pre>
Можете через <a href="https://www.php.net/manual/ru/function.usort.php" rel="nofollow">usort</a> отсортировать по значению в <code>number</code> , а потом получить лейбл нулевого элемента.