Intereting Posts
как передать значение для цикла с одной страницы на следующую страницу в php? PHP / IOS: какой лучший способ кодировать json для веб-сервиса? Как я могу подсчитать общее количество всех комментариев и комментариев к каждому объекту на странице facebook? codeigniter: передать массив из контроллера для просмотра Ошибка загрузки api в Google Диске Массивы PHP – Сортировка по домену электронной почты (альтернативный) PHP: помощь с структурой массива PHP: Показать диалог подтверждения да / нет как импортировать очень большой запрос по phpmyadmin? Рекомендации PHP: Im загружает массив $ GLOBALS с большим количеством информации, которая будет использоваться между моими php-страницами Удалить первые 3 символа и последние 3 символа из String PHP Странный текст при преобразовании XML-массива в XML Среднее время в часах, минутах и ​​секундах в php Выполнить код после HTTP-запроса в PHP? Нужно центрировать уменьшенное изображение

значение максимального значения foreach?

Я довольно новичок в php, и у меня проблемы с циклами. У меня есть петля foreach,

foreach ($contents as $g => $f) { p($f); } 

который дает некоторые массивы, в зависимости от того, сколько у меня содержимого. в настоящее время у меня есть 2,

 Array ( [quantity] => 1 [discount] => 1 [discount_id] => 0 [id] => 1506 [cat_id] => 160 [price] => 89 [title] => კაბა ) Array ( [quantity] => 1 [discount] => 1 [discount_id] => 0 [id] => 1561 [cat_id] => 160 [price] => 79 [title] => ზედა ) 

моя цель – сохранить массив, который имеет максимальную цену в нем как другую переменную. Я как бы зациклился на том, как это сделать, мне удалось найти максимальную цену с помощью функции max()

 foreach ($contents as $g => $f) { $priceprod[] = $f['price']; $maxprice = max($priceprod); p($maxprice); } 

но я до сих пор не понимаю, как я должен узнать, в каком массиве максимальная цена. Мы ценим любые предложения

Вы также должны хранить ключи, чтобы вы могли просмотреть их после цикла:

 $priceprod = array(); foreach ($contents as $g => $f) { // use the key $g in the $priceprod array $priceprod[$g] = $f['price']; } // get the highest price $maxprice = max($priceprod); // find the key of the product with the highest price $product_key = array_search($maxprice, $priceprod); $product_with_highest_price = $contents[$product_key]; 

Обратите внимание, что результаты будут ненадежными, если есть несколько продуктов с одинаковой ценой.

Проверьте максимальную функцию для массива вне цикла.

 foreach ($contents as $g => $f) { $priceprod[] = $f['price']; } $maxprice = max($priceprod); p($maxprice); 

Здесь у вас есть решение с одним циклом, обрабатывающее несколько элементов с одинаковой максимальной ценой.

 $maxPrice = - INF; $keys = []; foreach($contents as $k=>$v){ if($v['price']>$maxPrice){ $maxPrice = $v['price']; $keys = [$k]; }else if($v['price']==$maxPrice){ $keys[] = $k; } }