Uy / O'yin konsollari / Min - eng kichik qiymatni topadi. Min - PHP massividagi eng kichik qiymatni topadi

Min - eng kichik qiymatni topadi. Min - PHP massividagi eng kichik qiymatni topadi

Massivlar axborotni saqlashning qulay tuzilgan usullaridan biridir. Bunday massivning har bir elementi o'z o'rni, o'z kaliti va qiymatiga ega. Massivlarning mazmuni har xil bo'lishi mumkin, masalan, raqamlar bazasi, nomlar yoki oddiy raqamli qiymatlar. Raqamlar haqida gapiradigan bo'lsak, biz turli xil vazifalarga duch kelishimiz mumkin, masalan, maksimal yoki minimal qiymatni chiqarish. Bugun biz buni turli dasturlash tillarida qanday hal qilish haqida gaplashamiz.

PHP da bir o'lchovli massivning eng katta va eng kichik qiymatini topish

Barcha massivlar tuzilishida farqlanadi. Ikkita oddiy bir o'lchovli massivni ko'rib chiqing, ulardan birida kalitlar mavjud emas:

$my_massiv = massiv(22, 24, 37, 74, 23, 2, 10);

va oldingisiga o'xshash, ammo kalitlari bilan:

$my_massiv = massiv(1 => 22, 2 => 24, 3 => 37, 4 => 74, 5 => 23, 6 => 2, 7 => 10);

Keling, ushbu massivning maksimal va minimal qiymatlarini ko'rsatishga harakat qilaylik. Buning uchun biz standart funktsiyalardan foydalanamiz " maks"Va" min"mos ravishda:

Echo max($mening_massiv); // Chop etish 74 echo min($my_array); // Chop etish 2

Agar ikkinchi massivni batafsil ko'rib chiqsak, natijada biz maksimal yoki minimal qiymatlarning kalitini olishimiz mumkin.

Misol sifatida massivdan foydalanish

$my_massiv = massiv(1 => 22, 2 => 24, 3 => 37, 4 => 74, 5 => 23, 6 => 2, 7 => 10);

u shunday ko'rinadi:

$max = massiv_kalitlari($mening_massiv, maksimal($mening_massiv)); $max = $max;// Maksimal qiymat kaliti $min = massiv_kalitlari($mening_massiv, min($mening_massiv)); $min = $min; // Minimal qiymat kaliti echo $max; // Maksimal qiymatning natijasini chop eting

Shunga ko'ra, maksimal qiymat kaliti "4" va minimal qiymat "6" dir.

PHP da ko'p o'lchovli massivning eng katta va eng kichik qiymatini topish

Ko'p o'lchovli massivlar o'zlarining joylashishi bilan ajralib turadi. Masalan, ikki o'lchovli massiv kalitlarsiz shunday ko'rinadi:

$my_massiv = massiv (massiv (22, 24, 37), massiv (74, 23, 2), massiv (10));

Va shunga ko'ra, ma'lum kalitlar bilan:

$my_massiv = massiv(massiv(1 => 22, 2 => 24, 3 => 37), massiv (4 => 74, 5 => 23, 6 => 2), massiv (7 => 10));

Bunday holda, maksimal va minimal qiymatlarni topish biroz qiyin, ammo mumkin.

Birinchidan, bu erda maksimal va minimalni topish uchun biz massivni bir o'lchovliga aylantiramiz:

$out_massiv = massiv(); foreach($my_massiv $sub_massiv sifatida) ( $out_massiv = array_merge($out_array, $sub_array); )

Dizayn yuqoridagi ikkala variant uchun ham ishlaydi. Va keyin, bir o'lchovli massiv misolidan so'ng, biz kerakli ma'lumotlarni ko'rsatamiz:

Echo max($out_massiv); // Chop etish 74 echo min($out_massiv); // Chop etish 2

Kichkina bonus sifatida men yana bir mashhur ikki o'lchovli massivga misol keltiraman:

$my_array = massiv(massiv("id" => "1", "sana" => "2018-03-19", "narx" => "5",), massiv ("id" => "2" , "sana" => "2018-03-19", "narx" => "50",), massiv ("id" => "3", "sana" => "2018-03-19", " narx" => "25",));

Mashhurlik deganda tarkibni emas, balki uning tuzilishiga misol keltiraman. Aytaylik, bu erda siz faqat "narx" tugmachalarining maksimal va minimal qiymatlarini chiqarishingiz kerak.

Bu holatda sizga kerak bo'lgan birinchi narsa - olish yangi massiv faqat ushbu ma'lumotlar bilan:

$raqamlar = massiv_ustun($mening_massiv, "narx");

Echo min($raqamlar); // 5 ta echo maks ($raqamlar) chop etish; // Chop etish 50

Bu PHP da massivlar bilan ishlashni yakunlaydi. Agar to'satdan massivingizning tuzilishi boshqacha bo'lsa va siz uni qanday qayta ishlashni bilmasangiz, izohlarda tegishli savolni so'rang, men sizga yordam berishga harakat qilaman.

JavaScript-da bir o'lchovli massivning eng katta va eng kichik qiymatini topish

PHP-dan farqli o'laroq, JavaScript-da massivlar turi ancha sodda va oddiy bir o'lchovli massiv quyidagicha ko'rinadi:

Var my_array = ;

Bu erda indekslar ko'rsatilmagan. Ushbu massivdagi maksimal va minimal qiymatlarni topish uchun biz ikkita oddiy funktsiyani yozamiz:

Funktsiya arrayMax(massiv) ( qaytish array.reduce(funksiya(a, b) ( return Math.max(a, b); )); ) funktsiya arrayMin(massiv) ( qaytish massivi.reduce(funktsiya(a, b) ( qaytish Math.min(a, b));

ular bizga kerakli qiymatlarni topish uchun ishlatiladi. Foydalanish ham oddiy:

Ogohlantirish(arrayMax(mening_massiv)); // Chop etish 74 alert(arrayMin(mening_massiv)); // Chop etish 2

Bunday holda, ekranda "2" va "74" raqamlari massivning minimal va maksimal qiymatlari sifatida ko'rsatiladi.

JavaScript-da ko'p o'lchovli massivning eng katta va eng kichik qiymatini topish

JavaScript-dagi ko'p o'lchovli massivlar xuddi shunday oddiy va ular quyidagicha ko'rinadi:

Var my_array = [ , , ];

Keling, bu erda maksimal va minimalni topishga harakat qilaylik. Boshlash uchun biz allaqachon tanish bo'lgan sxema bo'yicha ushbu massivni bir o'lchovli sifatida taqdim etadigan funktsiyani yozamiz:

Var out_array = ; my_array.forEach(funksiya(v) ( Array.prototype.push.apply(out_massiv, v); ));

Va ob'ektdan foydalanish " Matematika"Biz kerakli qiymatlarni olamiz:

Var min = Math.min.apply (null, out_massiv); // 2 var max oling = Math.max.apply (null, out_array); // 74 ogohlantirish olish (maksimal); // Ekranda 74 chop etish

Aslida, ob'ekt o'rniga " Matematika“Siz bizning versiyada qoʻllanilgan funksiyalarimizdan bir oʻlchovli massiv bilan foydalanishingiz mumkin, ammo har qanday muammoni bir necha usul bilan hal qilish mumkinligini tushunishingiz uchun – bu yerda men biroz boshqacha yechim taklif qildim.

Xo'sh, an'anaga ko'ra - kichik bonus. Keling, quyidagi tuzilishga ega bo'lgan boshqa ko'p o'lchovli massivni ko'rib chiqaylik:

Var my_array = [["Bir", "2018-03-19", 5], ["Ikki", "2018-03-19", 50], ["Uch", "2018-03-19", 25 ], ];

Ko'rib turganimizdek, har bir massivdagi raqamli qiymatlar uchinchi o'rinda. Keling, bir nechta kod yozamiz va faqat ushbu ma'lumotlardan mos keladigan qiymatlarni olamiz:

Var min = +Infinity; var max = -Infinity; my_array.forEach(funksiya(element) (if(+element).< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >max) ( max =+ element; // Maksimal qiymat qidirilmoqda ) )); ogohlantirish (min+" "+maks); // Natijani ekranda ko'rsatish

Ana xolos. Loyihani qo'llab-quvvatlashni unutmang. Oldinda sizni juda ko'p qiziqarli narsalar kutmoqda!

kalitni olish (9)

Menda bu massiv bor:

Massiv (0 => massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irlik" => "200",), 1 => massiv ("id" => "20110209172747", "Sana" => "2011-02-09", "Og'irligi" => "180",), 2 => massiv ("id" => "20110209172827", "Sana" => "2011- 02-09", "Og'irligi" => "175",), 3 => massiv ("id" => "201102111204433", "Sana" => "2011-02-11", "Og'irligi" => "195 ",),))

Men minimal va maksimal vazn qiymatlarini chiqarishim kerak. Ushbu misolda

$min_qiymati = 175

$max_value = 200

Buni qanday qilish haqida biron bir yordam? Rahmat!

Javoblar

PHP 5.5+ ishlatadigan odamlar uchun buni array_column bilan ancha oson qilish mumkin. Bu xunuk massivlar kerak emas.

Maksimal qiymatni qanday olish mumkin:

$eng_og'irligi = max(massiv_ustun($tafsilotlar, "Og'irlik"));

Minimal qiymatni qanday olish mumkin

$eng past_og'irlik = min(massiv_ustun($tafsilotlar, "Og'irlik"));

Variant 1: Avval siz ushbu raqamlarni olish uchun massivni jamlaysiz (to'liq ma'lumot emas):

$raqamlar = massiv_ustun($massiv, "og'irlik")

Keyin siz min va maksimalni olasiz:

$min = min($raqamlar); $max = max($raqamlar);

Variant 2. (Faqat sizda PHP 5.5 bo'lmasa.) 1-variant bilan bir xil, lekin qiymatlarni olish uchun array_map dan foydalaning:

$raqamlar = massiv_xaritasi(funksiya($tafsilotlar) (qaytish $tafsilotlari["Og'irlik"]; ), $massiv);

Variant 3.

Variant 4: Agar sizga faqat min OR max kerak bo'lsa, array_reduce() tezroq bo'lishi mumkin:

$min = array_reduce($massiv, funktsiya($min, $tafsilotlar) (qaytish min($min, $tafsilotlar["vazn"]); ), PHP_INT_MAX);

Bu min() s dan ko'proq vaqtni oladi, lekin ular juda tez. PHP_INT_MAX maksimaldan boshlanishi va pasayib borishi kerak. $max uchun ham xuddi shunday qilishingiz mumkin, lekin siz 0 yoki -PHP_INT_MAX dan boshlaysiz.

massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irligi" => "200",), 1 => massiv ("id" => "20110209172747", " Sana" => "2011-02-09", "Og'irligi" => "180",), 2 => massiv ("id" => "20110209172827", "Sana" => "2011-02-09", "Og'irligi" => "175",), 3 => massiv ("id" => "20110211204433", "Sana" => "2011-02-11", "Og'irligi" => "195",),) ; foreach ($massiv sifatida $kalit => $qiymat) ($natija[$kalit] = $qiymat["Og'irlik"]; ) $min = min($natija); $max = max($natija); echo "Minimum sondagi massiv:".$min."
"; echo " Maksimal sondagi massiv: ".$max."
"; ?>

Foreach ($k massivi => $v) ( $tArray[$k] = $v["Og'irlik"]; ) $min_value = min($tArray); $max_value = max($tArray);

PHP da tartiblash massividan foydalanmasdan massivdan beshta maksimal va min raqamlarni tezda chop eting: -

Etti eng yuqori harorat roʻyxati:-"; $m= max($massiv); for($i=1; $i)<7 ; $i++) { $m[$i]=max(array_diff($array,$m)); } foreach ($m as $key =>$qiymat) (echo " ".$value; ) echo "
Etti eng past harorat roʻyxati: "; $mi= min($massiv); for($i=1; $i)<7 ; $i++) { $mi[$i]=min(array_diff($array,$mi)); } foreach ($mi as $key =>$qiymat) (echo " ".$value; ) ?>

Min yoki max kabi oldindan belgilangan funksiyadan foydalanmasdan-chi?

$arr =; $val = $arr; $n = hisoblash ($arr); uchun($i=1;$i<$n;$i++) { if($val<$arr[$i]) { $val = $val; } else { $val = $arr[$i]; } } print($val);

Qizig'i shundaki, yuqoridagi ikkala yechim ham massivlar ko'rinishida qo'shimcha xotiradan foydalanadi (birinchi navbatda ulardan biri, ikkinchisi esa bitta massiv) va keyin siz "qo'shimcha saqlash" massividan foydalanib, min va maksimalni topasiz. Bu dasturlashning haqiqiy dunyosida maqbul bo'lishi mumkin bo'lsa-da (kim "qo'shimcha" saqlash haqida ikki bit beradi?), Bu sizga Dasturlash 101da "C" beradi.

Min va maksni topish muammosini faqat ikkita qo'shimcha xotira uyasi bilan osongina hal qilish mumkin

$first = intval($input["Og'irlik"]); $min = $birinchi; $max = $birinchi; foreach($kiritish $data) ( $weight = intval($data["Og'irlik"]); if($weight)<= $min) { $min = $weight ; } if($weight >$max) ( $max = $weight; ) ) echo " min = $min va max = $max \n " ;

$num = massiv (0 => massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irlik" => "200"), 1 => massiv ("id" => "20110209172747", "Sana" => "2011-02-09", "Og'irligi" => "180", 2 => massiv ("id" => "20110209172827", "Sana" => "2011 - 02-09", "Og'irligi" => "175"), 3 => massiv ("id" => "201102111204433", "Sana" => "2011-02-11", "Og'irligi" => "195 " )))

foreach($num as $key => $val) ( $weight = $val["Og'irlik"]; ) echo max($weight); echo min($weight); .

Mana bir necha usullar elementni JavaScript yordamida massivdan olib tashlang Barcha tavsiflangan usullar

asl qatorni o'zgartirmang

va o'rniga yangisini yarating.

Agar siz element indeksini bilsangiz

Aytaylik, sizda massiv bor va siz i pozitsiyasidagi elementni olib tashlamoqchisiz.

Buning bir usuli slice() dan foydalanishdir:

const elementlar = ["a", "b", "c", "d", "e", "f"] const i = 3 const filteredItems = items.slice(0, i-1).concat(elementlar. slice(i, items.length)) console.log(filteredItems)

slice() olgan indekslari bilan yangi massiv yaratadi. Biz shunchaki yangi massiv yaratamiz - boshidan o'chirmoqchi bo'lgan indeksga qadar va o'chirilgan qatordan keyingi birinchi pozitsiyadan massiv oxirigacha boshqa massivni birlashtiramiz. Agar ma'nosini bilsangiz Bunday holda, ko'proq narsani taklif qiladigan filter() dan foydalanish yaxshi variantdir

deklarativ

yondashuv:

const items = ["a", "b", "c", "d", "e", "f"] const valueToRemove = "c" const filteredItems = items.filter(element => element!== valueToRemove) console.log(filteredItems)

Bu ES6 strelka funksiyalaridan foydalanadi. Eski brauzerlarni qo'llab-quvvatlash uchun an'anaviy funktsiyalardan foydalanishingiz mumkin:

const items = ["a", "b", "c", "d", "e", "f"] const valueToRemove = "c" const filteredItems = items.filter(function(element) (elementni qaytaring!=) = valueToRemove )) console.log(filteredItems)

yoki eski brauzerlar uchun qulayroq qilish uchun Babel-dan foydalanishingiz va ES6 kodini ES5-ga o'zgartirishingiz mumkin, lekin kodingizga zamonaviy JavaScript-ni yozing.

Bir nechta elementlarni olib tashlash

Agar bitta element o'rniga ko'p elementlarni o'chirmoqchi bo'lsangiz nima bo'ladi?

Keling, eng oddiy yechimni topaylik.

const items = ["a", "b", "c", "d", "e", "f"] const removeItem = (elementlar, i) => items.slice(0, i-1).concat (items.slice(i, items.length)) filteredItems = removeItem(items, 3) filteredItems = removeItem(filteredItems, 5) //["a", "b", "c", "d"] konsoliga ruxsat bering. jurnal (filtrlangan elementlar)

Qiymat bo'yicha

Qayta qo'ng'iroq qilish funktsiyasi ichida qo'shilishni izlashingiz mumkin:

const items = ["a", "b", "c", "d", "e", "f"] const valuesToRemove = ["c", "d"] const filteredItems = items.filter(item => !valuesToRemove.includes(element)) // ["a", "b", "e", "f"] console.log(filteredItems)

Asl massivni mutatsiyalashdan saqlaning

splice() (slice() bilan adashtirmaslik kerak) asl massivni o'zgartiradi va undan qochish kerak.


Menda bu massiv bor:

Massiv (0 => massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irlik" => "200",), 1 => massiv ("id" => "20110209172747", "Sana" => "2011-02-09", "Og'irligi" => "180",), 2 => massiv ("id" => "20110209172827", "Sana" => "2011- 02-09", "Og'irligi" => "175",), 3 => massiv ("id" => "201102111204433", "Sana" => "2011-02-11", "Og'irligi" => "195 ",),))

Men minimal va maksimal vazn qiymatlarini chiqarishim kerak. Ushbu misolda

$min_qiymati = 175

$max_value = 200

Buni qanday qilish haqida biron bir yordam? Rahmat!


2018-05-01 03:06

Javoblar:

Variant 1: Avval siz ushbu raqamlarni olish uchun massivni jamlaysiz (to'liq ma'lumot emas):

$raqamlar = massiv_ustun($massiv, "og'irlik")

Keyin siz min va maksimalni olasiz:

$min = min($raqamlar); $max = max($raqamlar);

Variant 2. (Faqat sizda PHP 5.5 bo'lmasa.) 1-variant bilan bir xil, lekin qiymatlarni olish uchun array_map dan foydalaning:

$raqamlar = massiv_xaritasi(funksiya($tafsilotlar) (qaytish $tafsilotlari["Og'irlik"]; ), $massiv);

Variant 3.

Variant 4: Agar sizga minimal qiymat kerak bo'lsa, array_reduce() tezroq bo'lishi mumkin:

$min = array_reduce($massiv, funktsiya($min, $tafsilotlar) (qaytish min($min, $tafsilotlar["vazn"]); ), PHP_INT_MAX);

Bu min() s dan ko'proq vaqtni oladi, lekin ular juda tez. PHP_INT_MAX maksimaldan boshlanishi va pasayib borishi kerak. $max uchun ham xuddi shunday qilishingiz mumkin, lekin siz 0 yoki -PHP_INT_MAX dan boshlaysiz.


2018-05-01 03:11

Foreach ($k massivi => $v) ( $tArray[$k] = $v["Og'irlik"]; ) $min_value = min($tArray); $max_value = max($tArray);


2018-05-01 03:09

PHP 5.5+ dan foydalanadigan odamlar uchun bu array_column yordamida juda oson bajarilishi mumkin.

Maksimal qiymatni qanday olish mumkin:

$eng_og'irligi = max(massiv_ustun($tafsilotlar, "Og'irlik"));

Minimal qiymatni qanday olish mumkin

$eng past_og'irlik = min(massiv_ustun($tafsilotlar, "Og'irlik"));


2018-01-24 11:04

Qizig'i shundaki, yuqoridagi ikkala yechim ham massivlar ko'rinishida qo'shimcha xotiradan foydalanadi (birinchi navbatda ulardan biri, ikkinchisi esa bitta massiv) va keyin siz "qo'shimcha saqlash" massividan foydalanib, min va maksimalni topasiz. Bu dasturlashning haqiqiy dunyosida maqbul bo'lishi mumkin bo'lsa-da (kim "qo'shimcha" saqlash haqida ikki bit beradi?), Bu sizga Dasturlash 101da "C" beradi.

Min va maksni topish muammosini faqat ikkita qo'shimcha xotira uyasi bilan osongina hal qilish mumkin

$first = intval($input["Og'irlik"]); $min = $birinchi; $max = $birinchi; foreach($kiritish $data) ( $weight = intval($data["Og'irlik"]); if($weight)<= $min) { $min = $weight ; } if($weight >$max) ( $max = $weight; ) ) echo " min = $min va max = $max \n " ;


2018-05-01 06:08

$num = massiv (0 => massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irlik" => "200"), 1 => massiv ("id" => "20110209172747", "Sana" => "2011-02-09", "Og'irligi" => "180", 2 => massiv ("id" => "20110209172827", "Sana" => "2011 - 02-09", "Og'irligi" => "175"), 3 => massiv ("id" => "201102111204433", "Sana" => "2011-02-11", "Og'irligi" => "195 " )))


2018-01-10 06:44

massiv ("id" => "20110209172713", "Sana" => "2011-02-09", "Og'irligi" => "200",), 1 => massiv ("id" => "20110209172747", " Sana" => "2011-02-09", "Og'irligi" => "180",), 2 => massiv ("id" => "20110209172827", "Sana" => "2011-02-09", "Og'irligi" => "175",), 3 => massiv ("id" => "20110211204433", "Sana" => "2011-02-11", "Og'irligi" => "195",),) ; foreach ($massiv sifatida $kalit => $qiymat) ($natija[$kalit] = $qiymat["Og'irlik"]; ) $min = min($natija); $max = max($natija); echo "Minimum sondagi massiv:".$min."
"; echo " Maksimal sondagi massiv: ".$max."
"; ?>


2017-11-11 19:33

$Location_Category_array = massiv(5,50,7,6,1,7,7,30,50,50,50,40,50,9,9,11,2,2,2,2,2,11,21 ,21,1,12,1,5); asort($Location_Category_array); $count=array_count_values($Location_Category_array);//Masivdagi qiymatlarni hisoblaydi, assosiativ massivni qaytaradi print_r($count);
$maxsize = 0;
$maxvalue = 0;

foreach($count $a=>$y)( echo "

".$a."=".$y; if($y>=$maxvalue)( $maxvalue = $y; if($a>$maxsize)( $maxsize = $a; ) ) ) echo " max = ".$maxsize;

(PHP 4, PHP 5, PHP 7)

min - Eng kichik qiymatni topadi Tavsif Eng kichik qiymatni topadi Agar faqat bitta argument topshirilsa - raqamlar qatori,

Izoh:

Har xil turdagi qiymatlar standart taqqoslash qoidalari yordamida taqqoslanadi. Masalan, raqamli bo'lmagan qator ( ip) butun son bilan solishtiriladi ( butun son) xuddi teng bo'lgandek 0 , lekin bir nechta satr ( ip) alifbo tartibida taqqoslanadi. Qaytish qiymati o'zgaruvchining asl turini konvertatsiya qilmasdan saqlab qoladi.

Qaytish qiymatlari

Funktsiya Eng kichik qiymatni topadi standart taqqoslash qoidalariga muvofiq "eng kichik" deb hisoblangan parametr qiymatini qaytaradi. Agar bir nechta qiymat bo'lsa har xil turlari bir-biriga teng (ya'ni. 0 Va "abc"), keyin birinchisi qaytariladi.

Misollar

1-misol Foydalanish misoli Eng kichik qiymatni topadi

echo min(2, 3, 1, 6, 7); // 1
echo min (massiv(2 , 4 , 5 )); // 2

// "Salom" satri int bilan solishtirganda 0 sifatida qabul qilinadi
// Ikkala qiymat ham teng bo'lganligi sababli, parametrlarning tartibi natijani aniqlaydi
echo min(0, "salom"); // 0
echo min ("salom" , 0 ); // Salom

// Bu erda biz -1 ni solishtiramiz< 0, поэтому -1 является наименьшим значением
echo min ("salom" , - 1); // -1

// Turli uzunlikdagi massivlarni solishtirganda min qisqasini qaytaradi
$val = min (massiv (2 , 2 , 2 ), massiv (1 , 1 , 1 , 1 )); // massiv (2, 2, 2)

// Bir xil uzunlikdagi bir nechta massivlar chapdan o'ngga taqqoslanadi
// bu misol uchun: 2 == 2, lekin 4< 5
$val = min (massiv (2 , 4 , 8 ), massiv (2 , 5 , 1 )); // massiv (2, 4, 8)

// Agar massiv va massiv bo'lmaganlar solishtirilsa, massiv hech qachon qaytarilmaydi
// chunki massivlar boshqa barcha qiymatlardan kattaroq hisoblanadi
$val = min ("string" , massiv(2 , 5 , 7 ), 42 ); //string

// Agar bitta argument NULL yoki mantiqiy bo'lsa, u boshqalar bilan taqqoslanadi
// FALSE qoidasi yordamida< TRUE, учитывая остальные типы аргументов
// Keltirilgan misolda -10 va 10 TRUE deb hisoblanadi
$val = min (- 10 , FALSE , 10 ); // FALSE
$val = min (- 10 , NULL , 10 ); // NULL

// boshqa tomondan, 0 FALSE sifatida qabul qilinadi, shuning uchun u TRUE dan "kamroq"
$val = min(0, TRUE); // 0
?>

Menda ushbu formatdagi massiv bor:

Massiv ( => Massiv ( => 117 => Tarmoq => 16) => Massiv ( => 188 => FTP => 23) => Massiv ( => 189 => Internet => 48))

Bormi yaxshi yo'l"hisoblash" ning minimal va maksimal qiymatlarini olasizmi? Men buni bir nechta pastadir yordamida qilishim mumkin edi, lekin men yaxshiroq yo'l bo'lishi mumkin deb o'yladim.

Boshqalardan farqli o'laroq, siz ushbu muammo uchun min() / max() funksiyalaridan foydalana olmaysiz, chunki bu funksiyalar ularga uzatilgan ma'lumotlar (massiv) massivlarini tushunmaydi. Bu funksiyalar faqat skalyar massiv elementlari uchun ishlaydi.

RASMNI BOSHLASH

Min() va max() dan foydalanishning to'g'ri javob berishining sababi, massivlarning butun sonlarga yozilishi, bu aniqlanmagan xatti-harakatlardir:

Butun songa aylantirish harakati boshqa turlar uchun aniqlanmagan. Har qanday kuzatilgan xatti-harakatlarga tayanmang, chunki u ogohlantirishsiz o'zgarishi mumkin.

Tip-casting haqidagi yuqoridagi bayonotim noto'g'ri edi. Aslida min() va max() massivlar bilan ishlaydi, lekin OP ularni ishlashi kerak bo'lgan tarzda emas. Bir nechta massiv yoki massiv elementlari massivi bilan min() va max() dan foydalanilganda elementlarni element bo‘yicha chapdan o‘ngga solishtiring:

$val = min (massiv (2, 4, 8), massiv (2, 5, 1)); // massiv(2, 4, 8) /* * birinchi elementga nisbatan birinchi element: 2 == 2 * ikkinchi elementga nisbatan: 4< 5 * first array is considered the min and is returned */

Muammoga tarjima qilingan OP nima uchun to'g'ridan-to'g'ri min() va max() dan foydalanish to'g'ri natija berishini ko'rsatadi. Massivning birinchi elementlari id dir, shuning uchun min() va max() avval ularni solishtiradi, darvoqe, bu toʻgʻri natijaga olib keladi, chunki eng past identifikator eng kam songa ega boʻlgan va eng yuqori id esa bitta. bu eng yuqori ko'rsatkichga ega.

TAHRIRLASHNI TUGASH

To'g'ri yo'l loopdan foydalanishdir.

$a = massiv(massiv("id" => 117, "nom" => "Tarmoq", "hisoblash" => 16), massiv("id" => 188, "nom" => "FTP", " count" => 23), array("id" => 189, "name" => "Internet", "count" => 48)); $min = PHP_INT_MAX; $max = 0; foreach ($a sifatida $i) ( $min = min($min, $i["hisob"]); $maks = max($max, $i["hisob"]); )

Siz max() va min() funksiyalaridan foydalanishingiz mumkin.

Bir nechta loop bilan nima qildingiz? Bittasi kifoya :)

  1. $min va max sonini sanab birinchi elementni oling
  2. qolganini takrorlang, har bir $min va $max bilan hisoblashni solishtiring, agar kamroq/kattaroq bo'lsa, yangi hisoblash qiymatini belgilang

Siz max/min funksiyalaridan foydalanishingiz mumkin, chunki ular har bir indeksning maksimal/minimalini o'z ichiga olgan massivni qaytaradi. Sizning namunangiz max uchun massivni (189, "Tarmoq", 48) qaytarishi kerak. Keyin ushbu massivdan ball olishingiz mumkin.

Buni yangilash men rad etganimdek ishlamaydi. Man sahifasi misoli noto'g'ri va misol max yordamida to'g'ri natija beradi, lekin bu shunchaki tasodif.

2D massivda max() dan foydalana olmaganga o'xshaydi. U har bir indeksning max() qiymatini emas, balki eng katta massivni qaytaradi (bir nechta javoblarda aytilganidek).

$count = massiv(); foreach($arr as $_arr) ( $count = $_arr["count"]; ) var_dump(max($count), min($count));

Ekvivalenti bormi o'rnatilgan Buning uchun funktsiya? (imkoniyatsiz ham sinovdan o'tkazish)

/** * 2D massivdan ustunni boshqa ustun ustiga ixtiyoriy tanlash bilan oladi * * dan olish uchun @param $ aArray * @param $ aColName olish uchun ustun nomi, masalan. "O_NAME" * @param $aColTest (ixtiyoriy) testni bajarish uchun ustun nomi, masalan. Sinov uchun "O_ID" * @param $aTest (ixtiyoriy) qatori. ">=10", "== "". $Toto. "" " * @return 1D massiv faqat ustuni chiqarilgan * @access public * / funksiyasi ekstraktiColFromArray ($aArray, $aColName, $aColTest = "", $ aTest = "") ( $mRes = array()); aTest.