- Находим наибольшее и наименьшее значение массива на PHP/JavaScript
- Находим наибольшее и наименьшее значение одномерного массива на PHP
- Находим наибольшее и наименьшее значение многомерного массива на PHP
- Находим наибольшее и наименьшее значение одномерного массива на JavaScript
- Находим наибольшее и наименьшее значение многомерного массива на JavaScript
- Максимальные и минимальные элементы массива на PHP
- Решение
- Минимальное и максимальное значения массива
- Условия задачи
- Общий принцип поиска элементов
- Минимальный и максимальный элементы с циклом FOREACH
- Решение:
- Минимальный и максимальный элементы с циклом WHILE
- Решение 1: счётчик + count()
- Решение 2: счётчик + isset()
- Решение 3: list() + each()
- Решение 4: current() + next()
- Наибольший и наименьший элементы с циклом FOR
- Решение 1: счётчик + count()
- Решение 2: счётчик + isset()
- Решение 3: each() + list()
- Решение 4: current() + next()
- Максимальное значение в ассоциативном массиве
Находим наибольшее и наименьшее значение массива на PHP/JavaScript
Массивы – одно из удобных структурированных способов хранения информации. Каждый элемент такого массива имеет свое место, свой ключ и значение. Содержание же массивов может быть разным, как, например, база номеров, названий или же простых числовых значений. Говоря о числе, перед нами могут вставать разного рода задачи, например, вывод максимального или минимального значения. О том, как это решается на разных языках программирования, сегодня и пойдет речь.
Находим наибольшее и наименьшее значение одномерного массива на PHP
Все массивы различаются по своей структуре. Рассмотрим два простых одномерных массива, один из которых не содержит в себе ключей:
$my_array = array(22, 24, 37, 74, 23, 2, 10);
и один, идентичный предыдущему, но уже с ключами:
$my_array = array( 1 => 22, 2 => 24, 3 => 37, 4 => 74, 5 => 23, 6 => 2, 7 => 10 );
Постараемся вывести максимальное и минимальное значение этого массива. Для этого мы воспользуемся стандартными функциями «max» и «min» соответственно:
echo max($my_array); // Выведем 74 echo min($my_array); // Выведем 2
Если мы рассмотрим более подробно второй массив, то в качестве результата мы можем получить ключ максимального или минимального значений.
$my_array = array( 1 => 22, 2 => 24, 3 => 37, 4 => 74, 5 => 23, 6 => 2, 7 => 10 );
это будет выглядеть следующим образом:
$max = array_keys($my_array, max($my_array)); $max = $max[0];// Ключ максимального значения $min = array_keys($my_array, min($my_array)); $min = $min[0]; // Ключ минимального значения echo $max; // Выведем результат максимального значения
Соответственно, ключ максимального значения – это «4», а минимального – «6».
Находим наибольшее и наименьшее значение многомерного массива на PHP
Многомерные массивы отличаются своей вложенностью. Например, двумерный массив будет выглядеть следующим образом без ключей:
$my_array = array( array(22, 24, 37), array(74, 23, 2), array(10) );
И, соответственно, с некими ключами:
$my_array = array( array( 1 => 22, 2 => 24, 3 => 37 ), array( 4 => 74, 5 => 23, 6 => 2 ), array( 7 => 10 ) );
В таком случае нахождение максимальных и минимальных значений немного затруднительно, но так же реально.
Для начала, чтобы здесь найти максимум и минимум, преобразуем массив в одномерный:
$out_array = array(); foreach($my_array as $sub_array) { $out_array = array_merge($out_array, $sub_array); >
Конструкция работает для обоих вариантов выше. И далее, по примеру одномерного массива, выведем нужные нам данные:
echo max($out_array); // Выведем 74 echo min($out_array); // Выведем 2
В качестве небольшого бонуса приведу пример еще одного популярного двумерного массива:
$my_array = array( array( "id" => "1", "date" => "2018-03-19", "price" => "5", ), array ( "id" => "2", "date" => "2018-03-19", "price" => "50", ), array ( "id" => "3", "date" => "2018-03-19", "price" => "25", ) );
Под популярностью я подразумеваю не содержание, а пример его структуры. Допустим, что здесь вам необходимо сделать вывод максимального и минимального значения только ключей «price».
Первое, что вам нужно в таком случае – получить новый массив только с этими данными:
$numbers = array_column($my_array, "price");
И дальше по примеру того же одномерного массива выводим максимум и минимум:
echo min($numbers); // Выведем 5 echo max($numbers); // Выведем 50
На этом работа с массивами на PHP закончена. Если вдруг структура вашего массива отличается и вы не знаете, как его обработать – задайте соответствующий вопрос в комментариях, постараюсь вам помочь.
Находим наибольшее и наименьшее значение одномерного массива на JavaScript
В отличие от PHP, в JavaScript вид массивов куда проще, и простой одномерный массив будет выглядеть следующим образом:
var my_array = [22, 24, 37, 74, 23, 2, 10];
Индексы здесь никакие не указываются. Для того чтобы найти в этом массиве максимальное и минимальное значение, напишем две своих простеньких функции:
function arrayMax(array) { return array.reduce(function(a, b) { return Math.max(a, b); >); > function arrayMin(array) { return array.reduce(function(a, b) { return Math.min(a, b); >); >
которые используются для нахождения нужных нам значений. Использование также простое:
alert(arrayMax(my_array)); // Выведем 74 alert(arrayMin(my_array)); // Выведем 2
В этом случае на экран выведутся числа «2» и «74» как минимальное и максимальное значение массива.
Находим наибольшее и наименьшее значение многомерного массива на JavaScript
Многомерные массивы в JavaScript так же просты, и выглядят они следующим образом:
var my_array = [ [22, 24, 37], [74, 23, 2], [10] ];
Давайте попробуем здесь найти максимум и минимум. Для начала мы напишем функцию, с помощью которой по привычной уже нам схеме представим этот массив как одномерный:
var out_array = []; my_array.forEach(function(v) { Array.prototype.push.apply(out_array, v); >);
И с помощью объекта «Math» получим нужные нам значения:
var min = Math.min.apply(null, out_array); // Получим 2 var max = Math.max.apply(null, out_array); // Получим 74 alert(max); // Выведем 74 на экран
На самом деле вместо объекта «Math» можно использовать наши функции, используемые в варианте с одномерным массивом, но чтобы вы понимали, что любую задачу можно решить несколькими способами – здесь я привел немного другое решение.
Ну и по традиции – небольшой бонус. Рассмотрим еще один многомерный массив с такой структурой:
var my_array = [ ["Один", "2018-03-19", 5], ["Два", "2018-03-19", 50], ["Три", "2018-03-19", 25], ];
Как мы видим, числовые значения в каждом массиве находятся на третьем месте. Давайте напишем код и получим соответствующие значения только из этих данных:
var min = +Infinity; var max = -Infinity; my_array.forEach(function(item) { if(+item[2] < min) { min =+ item[2]; // Ищем минимальное значение >>); my_array.forEach(function(item) { if(+item[2] > max) { max =+ item[2]; // Ищем максимальное значение > >); alert(min+" "+max); // Выводим результат на экран
На этом все. Не забывайте поддерживать проект. Впереди вас ждет много всего интересного!
Максимальные и минимальные элементы массива на PHP
Написать функцию, которая находит номера максимального и минимального элементов массива, а также среднее арифметическое всех элементов массива.
Максимальные элементы массива
Нужно найти все максимальные элементы массива подсчитать их и записать в переменную Есть функция.
Найти максимальные и минимальные элементы массива
создать числовой массив . Найти максимальные и минимальные элементы массива. выдать на экран эти.
Найти максимальные и минимальные элементы массива
Описать одномерный массив размерностью 20. Заполнить массив случайными значениями из диапазона от 1.
Удалить максимальные элементы и удвоить минимальные элементы массива
Удалить из массива элементы, содержащие максимальный элемент массива, а затем удвоить вхождение.
Сообщение было отмечено kaztennis как решение
Решение
function minMaxAverage($array){ echo max($array).'
'; echo min($array).'
'; $summ=0; foreach($array as $a) $summ+=$a; echo $summ/count($array); }
Минимальное и максимальное значения массива
Разумеется, проще всего получить минимальный и максимальный элементы массива с помощью функций min() и max() :
$arr = [8, 4, 12, 9]; $max = max($arr); // 12 $min = min($arr); // 4
Однако на форумах часто просят написать скрипт, не использующий эти функции. Чаще всего этого требуют преподаватели учебных учреждений.
Условия задачи
1. Найти наибольший наименьший элементы в одномерном числовом массиве.
2. Определить номер минимального и максимального элементов заданного одномерного массива.
3. Найти минимальное и максимальное значение в ассоциативном массиве.
Общий принцип поиска элементов
Во всех решениях мы будем использовать одну и ту же логику.
Согласно условию, нам необходимо объявить числовой массив произвольной длины. Также объявим 4 переменные, в которые будем помещать найденные значения и их ключи:
Далее перебираем массив в цикле и на каждой итерации проверяем, больше ли текущее значение, чем самое большое, что мы находили до этого.
И если больше — будем записывать в $max новое максимальное значение, а в $max_key его ключ. Абсолютно также поступим и с минимальными ключом и значением.
foreach($arr as $k => $v) < if($v >$max) < $max = $v; $max_key = $k; >if($v < $min) < $min = $v; $min_key = $k; >>
На данном этапе наш код уже будет работать, но это ещё не всё. Попробуем изменить исходный массив и посмотрим на результат:
$max) $max = $v; > var_dump($max); // -12
Максимальным должно быть число 0 , но скрипт вывел -12 . Дело в том, что PHP не считает истинным выражение 0 > null , поэтому ноль на первой итерации цикла не записался в переменную $max .
Для решения этой проблемы просто добавим условие, что если $max === null , т.е. если это первая итерация, то в любом случае записываем текущее значение в $min и $max :
$max or $max === null) $max = $v; > var_dump($max); // -12
Минимальный и максимальный элементы с циклом FOREACH
Решение:
$v) < if($v >$max or $max === null) < $max = $v; $max_key = $k; >if($v < $min or $min === null) < $min = $v; $min_key = $k; >> echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Минимальный и максимальный элементы с циклом WHILE
Решение 1: счётчик + count()
Цикл будет выполняться до тех пор, пока значение счётчика $i не превысит количество элементов массива.
$max or $max === null) < $max = $arr[$i]; $max_key = $i; >if($arr[$i] < $min or $min === null) < $min = $arr[$i]; $min_key = $i; >$i++; > echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Решение 2: счётчик + isset()
Запускаем вечный цикл while и в каждой итерации цикла проверяем существование следующего элемента с помощью isset() . Если его нет — выходим из цикла оператором break :
$max or $max === null) < $max = $arr[$i]; $max_key = $i; >if($arr[$i] < $min or $min === null) < $min = $arr[$i]; $min_key = $i; >> else break; $i++; > echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Решение 3: list() + each()
Функция each() возвращает ключ и значение текущего элемента массива и смещает его внутренний указатель на единицу. Функция list() используется просто для удобства — с её помощью мы превращаем массив, который возвращает функция each, в две разные переменные:
$max or $max === null) < $max = $v; $max_key = $k; >if($v < $min or $min === null) < $min = $v; $min_key = $k; >> echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Получился практически аналог foreach. Единственный минус в том, что начиная с PHP 7.2 функция each() объявлена устаревшей.
Решение 4: current() + next()
Это решение похоже на предыдущее с each(). Получаем текущий элемента массива функцией current() и смещаем внутренний указатель массива функцией next() . Получить текущий ключ массива можно с помощью функции key() .
$max or $max === null) < $max = $v; $max_key = key($arr); >if($v < $min or $min === null) < $min = $v; $min_key = key($arr); >next($arr); > echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Наибольший и наименьший элементы с циклом FOR
Решение 1: счётчик + count()
Вводим счётчик $i и увеличиваем его после каждой итерации. Цикл прекратится как только значение счётчика превысит количество элементов массива.
$max or $max === null) < $max = $arr[$i]; $max_key = $i; >if($arr[$i] < $min or $min === null) < $min = $arr[$i]; $min_key = $i; >> echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Решение 2: счётчик + isset()
В отличие от предыдущего варианта, мы не смотрим на количество элементов массива, а запускаем вечный цикл и в каждой итерации проверяем существование следующего элемента, и если его нет — прерываем цикл командой break :
$max or $max === null) < $max = $arr[$i]; $max_key = $i; >if($arr[$i] < $min or $min === null) < $min = $arr[$i]; $min_key = $i; >> echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Решение 3: each() + list()
Функция each() возвращает массив с ключом и значением текущего элемента массива, а list() превращает этот массив в 2 разные переменные. После последнего элемента функция each() вернёт false и цикл прекратит работу.
$max or $max === null) < $max = $v; $max_key = $k; >if($v < $min or $min === null) < $min = $v; $min_key = $k; >> echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Решение 4: current() + next()
С помощью функции next() смещаем внутренний указатель массива, а функции current() и key() возвращают текущие ключ и значение. Первое и последнее выражение цикла оставляем пустыми.
$max or $max === null) < $max = $v; $max_key = key($arr); >if($v < $min or $min === null) < $min = $v; $min_key = key($arr); >next($arr); > echo "Min value: $min
Min key: $min_key
"; echo "Max value: $max
Max key: $max_key";
Максимальное значение в ассоциативном массиве
В ассоциативных массивах отсутствует порядок или системность в названиях ключей, поэтому циклы со счётчиками здесь недоступны.
Но мы всё ещё можем использовать цикл foreach и те решения для while и for, где используются функции each() и next() , поскольку они используют не ключи, а внутренний указатель массива.