[php] Максимальное и Минимальное число из массива

[Удален]
1918

Есть массив:

Array

(
[0] => Array
(
[id] => 27
[etaj] => 5
[ploshad] => 514
[price] => 75000
[rooms] => 1
[sotki] => 515
)

[1] => Array
(
[id] => 26
[etaj] => 3
[ploshad] => 515
[price] => 280000
[rooms] => 2
[sotki] => 5415
)

[2] => Array
(
[id] => 25
[etaj] => 18
[ploshad] => 5415
[price] => 350000
[rooms] => 4
[sotki] => 1513
)

[3] => Array
(
[id] => 24
[etaj] => 5
[ploshad] => 541
[price] => 100000
[rooms] => 5
[sotki] => 1515
)

[4] => Array
(
[id] => 16
[etaj] => 1
[ploshad] => 10
[price] => 500000
[rooms] => 1
[sotki] => 100
)

)

Подскажите как вытащить Максимальное и Минимальное значение [etaj] например.

C
На сайте с 26.10.2013
Offline
54
#1


function compare($f1, $f2) {
if ($f1['etaj'] < $f2['etaj']) return -1;
if ($f1['etaj'] > $f2['etaj']) return 1;
return 0;
}

uksort($array, "compare");

$min = reset($array);
$max = end($array);

var_dump($min, $max);
Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
AM
На сайте с 27.03.2012
Offline
137
#2

не особо профи в php, но я бы сделал так

пробежался foreach по многомерному массиву и создал бы новый одномерный массив скажем etaj, а дальше банально max(array())

Пока ещё не придумал
[Удален]
#3

А я бы плясал от размера базы. Если большая - проще в sql засунуть заранее.

_ROBOT
На сайте с 07.02.2006
Offline
109
#4

Если данных немного то можно создать новый массив и с ним работать.


foreach($arr as $k => $val){
$array_ataj[]=$val['etaj'] ;
}

echo min($array_ataj);

echo max($array_ataj);


"Мы роботы-бездельники, не любим понедельники..."
Виктор Горняков
На сайте с 25.09.2006
Offline
175
#5
colorito:

function compare($f1, $f2) {
if ($f1['etaj'] < $f2['etaj']) return -1;
if ($f1['etaj'] > $f2['etaj']) return 1;
return 0;
}

uksort($array, "compare");

$min = reset($array);
$max = end($array);

var_dump($min, $max);

Я новичок (не пинать), а так не проще сделать, без использования функции function compare, а юзая алгоритм "естественного упорядочения" 🤪


usort($array, "strnatcmp");

$min = reset($array);
$max = end($array);

var_dump($min, $max);
МСК серверы: VPS (VDS) CPU: ОТ 1 ЯДРА/RAM: ОТ 1024MB/SSD: ОТ 10 GB/+ МЕСТО ПОД БЭКАПЫ/IPV4: 1 ШТ от 104 ₽ в мес ---> https://bit.ly/qwartaru
C
На сайте с 26.10.2013
Offline
54
#6

strnatcmp ждет на входе строки, а в случае многомерного массива получит массив и отвалится по ошибке

DrCrow:
Я новичок (не пинать), а так не проще сделать, без использования функции function compare, а юзая алгоритм "естественного упорядочения" 🤪

usort($array, "strnatcmp");

$min = reset($array);
$max = end($array);

var_dump($min, $max);
W
На сайте с 09.04.2013
Offline
46
#7
tohenson:
Подскажите как вытащить Максимальное и Минимальное значение [etaj] например.


$min = min(array_column($array, 'etaj'));
$max = max(array_column($array, 'etaj'));
echo 'Минимальное значение [etaj]: ',$min,PHP_EOL;
echo 'Максимальное значение [etaj]: ',$max,PHP_EOL;

Если нужна сортировка по ключу:


usort($array, function($a, $b) {
return $a['etaj'] - $b['etaj'];
});
print_r($array);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий