Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403

Как узнать какое значение ячейки массива больше, больше 2-x значений

23.02.2017, 18:41. Показов 1612. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив в нем все значения int есть ли какая функция что бы узнать какое значение больше и соответственно его индекс. Я имею ввиду не всего массива, а части, например 3 из 6 значений.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2017, 18:41
Ответы с готовыми решениями:

Как узнать какое число больше?
Надо в программе прописать : Как узнать, что больше: {exp}^{\pi } или {\pi }^{exp} ?

Поменять цвет ячейки, если значение больше 200
Доброго времени суток! Задание: в последнем столбце таблицы форматировать с выделением контрастным цветом значений, превышающих 200. ...

Как найти среднее значение элементов массива, которые больше 10-ти?
Определить среднее значение всех элементов массива, чьи факториалы больше 10.

11
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2017, 18:48
Цитата Сообщение от botstars Посмотреть сообщение
Я имею ввиду не всего массива, а части, например 3 из 6 значений.
А можно конкретный пример с массивом, всеми необходимыми параметрами и результатом, а то не очень понятно что имеется ввиду.
0
 Аватар для PantiL
26 / 26 / 10
Регистрация: 10.03.2016
Сообщений: 73
23.02.2017, 19:00
Я так понял что
PHP
1
2
//есть массив
$arr = [12, 17, 5, 6, 34, 56, 23];
третий и шестой элементы 5 и 56, надо выбрать все элементы больше чем оба эти значения, т.е. больше чем бОльшее из значений, т.е. больше чем 56.
0
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403
23.02.2017, 19:14  [ТС]
извиняюсь что не четко объяснил. есть массив
PHP
1
$arr = [12, 17, 5, 6, 34, 56, 23];
в нем мне нужно сравнить 1, 3 и 6 элементы то есть 12, 5 и 56 , я должен получить наибольший это 56. Сейчас вариант в цикл и заменять значение переменной если она меньше, но это не красиво, может функция какая есть сравнения переменных.

Добавлено через 1 минуту
главное еще индекс вытащить, который присвоен числу
0
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
23.02.2017, 19:30
PHP
1
2
3
4
5
<?php
$arr = [12, 17, 5, 6, 34, 56, 23];
$max = max($arr[0], $arr[2], $arr[5]);
echo $max . "\n" . array_search($max, $arr);
?>
Если что, нумерация элементов в массиве начинается с нуля.
1
 Аватар для PantiL
26 / 26 / 10
Регистрация: 10.03.2016
Сообщений: 73
23.02.2017, 19:57
Kir-malishev, если в массиве еще однин элемент будет иметь значение 56, и этот элемент будет находится раньше, то индекс будет получен неверным.
PHP
1
2
3
$arr = [56, 12, 17, 5, 6, 34, 56, 23];
$max = max($arr[1], $arr[3], $arr[6]);
echo $max . "\n" . array_search($max, $arr);
Получим 0 индекс, что не верно.

Добавлено через 10 минут
PHP
1
2
3
4
5
$arr = [56, 12, 17, 5, 6, 34, 56, 23];
$maxArr = [1=>$arr[1], 3=>$arr[3], 6=>$arr[6]];
arsort($maxArr);
$key = key($maxArr);
echo "Максимальный элемент ".$maxArr[$key]." его индекс $key";
1
77 / 76 / 57
Регистрация: 07.08.2016
Сообщений: 173
23.02.2017, 20:00
PantiL, ах, ну да.
Тогда без цикла не знаю как.
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
$arr = [56, 12, 17, 5, 6, 34, 56, 23];
$max = PHP_INT_MIN;
foreach([1, 3, 6] as $i){
    if($arr[$i] >= $max) {
        $max = $arr[$i];
        $index = $i;
    }
}
echo $max . "\n" . $index;
?>
1
 Аватар для PantiL
26 / 26 / 10
Регистрация: 10.03.2016
Сообщений: 73
23.02.2017, 20:53
Лучший ответ Сообщение было отмечено botstars как решение

Решение

Вот так поэлегантнее
PHP
1
2
3
4
5
6
$arr    = [56, 12, 17, 5, 6, 34, 56, 23];
//1, 3, 6 - индексы сравниваемых элементов
$maxArr = array_intersect_key($arr, array_flip([1, 3, 6]));
$max    = max($maxArr);
$key    = array_search($max, $maxArr);
echo "Максимальный элемент $max, его индекс $key";
1
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403
23.02.2017, 21:48  [ТС]
PantiL, самый элегантный и самый затратный)
0
 Аватар для PantiL
26 / 26 / 10
Регистрация: 10.03.2016
Сообщений: 73
23.02.2017, 22:13
botstars, в смысле затратный? Вы деньги за это платите ?

Не по теме:

шутка конечно



Медленно работает? Насколько огромными данными вы оперируете? Какая версия php?
0
2 / 3 / 2
Регистрация: 17.05.2013
Сообщений: 403
23.02.2017, 22:25  [ТС]
PantiL, А не я просто количество потребляемой памяти смотрю, там небольшая разница
0
24.02.2017, 07:56

Не по теме:

botstars, ну если в памяти проиграл мой вариант, должен в скорости выиграть. Баланс вселенной :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2017, 07:56
Помогаю со студенческими работами здесь

Очистка текущей ячейки DbGrid если в вводе после запятой значение больше 5
Как сделать в дбгрид очистка текущего ячейки если в вводе после запятой значение больше 5. Например: 55,?? После запятой не должно свыше...

Даны два различных вещественных числа, определить, какое больше, а какое меньше
Даны два различных вещественных числа. Определить: а) какое из них больше; б) какое из них меньше.

Сравнить уравнения и вывесети какое больше и какое меньше
А= 0,35 Х=0,21 вот что получилось в начале: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() ...

Написать функцию в которую передаётся два числа, и она выводит какое больше какое меньше
Написать функцию в которую передаётся два числа, и она выводит какое больше какое меньше. Можно как можно быстрее

Когда элемент одного массива больше элемента другого массива, то тот элемент что больше расскладывается на меньшие элементы
ребят не могу подобрать алгоритм ,такой что когда елемент одного массива больше елемента другого массива,то тот елемент что больше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru