Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Найти максимальное значение в массиве и записать в другой массив
Форумы портала PHP.SU » » Вопросы новичков » Найти максимальное значение в массиве и записать в другой массив

Страниц (1): [1]
 

1. apsek - 19 Января, 2018 - 09:44:48 - перейти к сообщению
Добрый день!

Помогите пожалуйста решить задачку:

есть массив следующего вида вида:

PHP:
скопировать код в буфер обмена
  1.        [0] => Array (
  2.                            [users] => Andrey
  3.                            [apples] => 2
  4.                            [bananas] => 1
  5.                            [oranges] => 7
  6.        [1] => Array (
  7.                            [users] => Oleg
  8.                            [apples] => 5
  9.                            [bananas] => 2
  10.                            [oranges] => 2 )
  11.        [2] => Array (
  12.                            [users] => Pavel
  13.                            [apples] => 2
  14.                            [bananas] => 8
  15.                            [oranges] => 1 )
  16. )


Надо найти среди ребят, у кого максимальное количество яблок, у кого бананов, а у кого апельсинов. И записать эти данные в другой массив, где будет задана единица (1) тому параметру, чей индекс набрал максимальное значени.
Например:

PHP:
скопировать код в буфер обмена
  1.        [0] => Array (
  2.                            [users] => Andrey
  3.                            [apples] => 0
  4.                            [bananas] => 0
  5.                            [oranges] => 1
  6.        [1] => Array (
  7.                            [users] => Oleg
  8.                            [apples] => 1
  9.                            [bananas] => 0
  10.                            [oranges] => 0 )
  11.        [2] => Array (
  12.                            [users] => Pavel
  13.                            [apples] => 0
  14.                            [bananas] => 1
  15.                            [oranges] => 0 )
  16. )


Заранее спасибо за помощь, надеюсь кто-нибудь поймёт, что я имел ввиду Растерялся
2. andrewkard - 19 Января, 2018 - 13:35:25 - перейти к сообщению
http://php.net/manual/ru/function.usort.php
PHP:
скопировать код в буфер обмена
  1.  
  2. function cmp($a, $b)
  3. {
  4.     if ($a == $b) {
  5.         return 0;
  6.     }
  7.     return ($a < $b) ? -1 : 1;
  8. }
  9.  
  10. $a = array(3, 2, 5, 6, 1);
  11.  
  12. usort($a, "cmp");
  13.  
  14. foreach ($a as $key => $value) {
  15.     echo "$key: $value\n";
  16. }
  17.  


В Вашем случае $a и $b будут массивами вида:
apsek пишет:
[users] => Andrey
[apples] => 0
[bananas] => 0
[oranges] => 1
3. Строитель - 19 Января, 2018 - 16:05:05 - перейти к сообщению
apsek
Спойлер (Отобразить)

 

Powered by ExBB FM 1.0 RC1