Internet Derazalar Android
Kengaytirmoq

PHP massivda maksimal qiymatni toping. PHP minimal va maksimal qiymatlar ikki o'lchovli assist birlashmada

(PHP 4, PHP 5, PHP 7)

min - min Eng kichik qiymatni topadi

Tavsif

Agar kimdir argument sifatida uzatsa - raqamlar qatorida, min () Ularning eng kichikini qaytaradi. Agar birinchi dalil butun argum yoki suzuvchi bo'lsa, unda u kamida bittasi bo'lishi kerak. Bunday holda, funktsiya min () Ularning eng kichikini qaytaring.

Sharh:

Turli xil turdagi qiymat standart taqqoslash qoidalari yordamida taqqoslanadi. Masalan, raqamli satr emas ( satr) butun son bilan taqqoslanadi ( butun son) go'yo u teng 0 , ammo bir nechta satrlar ( satr) Alifbo tartibida taqqoslang. Qaytish qiymati o'zgaruvchisining boshlang'ich turini o'zgartirmasdan saqlaydi.

Qaytish qiymatlari

Funktsiya min () Standart taqqoslash qoidalariga muvofiq "eng kichik" deb hisoblanadi parametr qiymatini qaytaradi. Agar turli xil turdagi bir nechta qiymatlar bir-biriga teng bo'lsa (i.e. 0 va "ABC") Birinchisi qaytariladi.

Misollar

Misol # 1 foydalanish namunasi min ()

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

// "Salom" stringi, IT bilan taqqoslaganda 0 sifatida ko'rib chiqiladi
// ikkala qiymat teng bo'lgani uchun parametrlarning tartibi natijani aniqlaydi
echo min (0, salom »); // 0.
echo min ("Salom", 0); // Salom.

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

// Turli uzunlikdagi massivlarni taqqoslaganda, min tezroq qaytib keladi
$ VL \u003d min (2, 2, 2), massiv (1, 1, 1, 1); // massiv (2, 2, 2)

// bir xil uzunlikdagi bir nechta qatorlar chapdan o'ngga o'xshaydi
// Ushbu misol uchun: 2 \u003d\u003d 2, lekin 4< 5
$ VL \u003d min (2, 4, 8), massiv (2, 5, 1); // massiv (2, 4, 8)

// Agar massivlar va massivlar taqqoslansa, u holda hech qachon qaytarilmaydi
// massivlar ko'pgina boshqa qadriyatlarga qaraganda katta hisoblanadi
$ VL \u003d min ("satr", massiv (2, 5, 7, 7), 42); // satr

// Agar bitta argument nol yoki yo'qoling bo'lsa, u qolganlar bilan taqqoslanadi
// noto'g'ri qoidadan foydalanish< TRUE, учитывая остальные типы аргументов
// -5-misolda -10 va 10 ta ishlov beriladi
$ VL \u003d min (- 10, FALSE, 10); // yolg'on
$ VL \u003d min (- 10, , 10); // null.

// boshqa tomondan, 0 yolg'on deb hisoblanadi, shuning uchun u haqiqatdan ko'ra "kamroq"
$ VL \u003d min (0, to'g'ri); // 0.
?>

Menda ushbu formatda qator bor:

Massiv (\u003d\u003e CAST \u003d\u003e Tarmoq \u003d\u003e 16) \u003d\u003e CAST \u003d\u003e 188 \u003d\u003e FTP \u003d\u003e CAYRAME (\u003d\u003e 189 \u003d\u003e Internet \u003d\u003e 48))

"Hisoblash" ning minimal va maksimal qiymatini olishning yaxshi usuli bormi? Men buni bir necha tsikl yordamida qila olaman, lekin menimcha, bu eng yaxshi usul bo'lishi mumkin deb o'yladim.

Boshqalardan farqli o'laroq, siz ushbu muammo uchun min () / Max () funktsiyalaridan foydalana olmaysiz, chunki bu funktsiyalar ularda uzatiladigan ma'lumotlar qatorlarini tushunmaydi (massiv). Ushbu funktsiyalar faqat massivning skalalar elementlari uchun ishlaydi.

Rasmni boshlang

Buning sababi min () va maksimal () to'g'ri javobni beradi, bu noaniq xatti-harakatlarga tegishli butun sonlarga tegishli:

Butunonning konversiya xatti-harakati boshqa turlar uchun aniqlanmagan. Har qanday kuzatilgan xatti-harakatlarga ishonmang, chunki bu ogohlantirishsiz o'zgarishi mumkin.

Yuqoridagi gapim mening tip strukturasi haqida mening gapim noto'g'ri edi. Aslida, MIN () va Maks () massivlar bilan ishlaydi, ammo oplarning ishiga hech qanday ehtiyoj emas. Min () va Maks () dan foydalanish paytida () bir nechta qatorlar yoki massivlar bilan, elementlar chap tomondan o'ngga nisbatan elementlar bilan taqqoslanadi:

$ VL \u003d min (2, 4, 8), massiv (2, 5, 1); // massiv (2, 4, 8) / * birinchi element bilan solishtirganda birinchi element: ikkinchi \u003d\u003d 2 * ikkinchi element ikkinchi element bilan taqqoslaganda: 4< 5 * first array is considered the min and is returned */

Muammoni tarjima qilingan OPS nima uchun min () va Maks () to'g'ri natijaga olib keladi. Massivning birinchi elementlari ID raqami, shuning uchun min () va Maks () avval ularni to'g'riroq taqqoslaydi, to'g'ri natijaga olib keladi, chunki eng past identifikatori eng past ko'rsatkichdir Bu eng yuqori ko'rsatkichga ega.

Tugatish tugashi.

To'g'ri yo'l - tsikldan foydalanish.

$ a \u003d CAST ("ID" \u003d\u003e Ism "," Spe "," Section "," Section "\u003d\u003e 188," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism "," Ism ". Hisoblash "\u003d\u003e 23), massiv (" ID "\u003d\u003e 189," Ism "," Internet "," Hisob "," Hisob "," Hisob "," Hisob "); $ min \u003d php_int_max; $ Maksi \u003d 0; Foreae ($ mi) ($ m) ($ min, $ i ["Hisob-mix"]); $ maksimal \u003d ["Hisob-maksimal"]););)

Siz Max () va minoralardan foydalanishingiz mumkin.

Siz bir nechta tsikl bilan nima qildingiz? Biri bu etarli

  1. Ikkala $ min va maxni hisoblash orqali birinchi elementni oling
  2. qolganlar uchun iteratsiyalar, metrni har $ metr va Maks bilan taqqoslang, agar kamroq / ko'proq bo'lsa, yangi hisob qaydnomasini oling

Siz Max / min funktsiyalaridan foydalanishingiz mumkin, chunki ular har bir indeksni o'z ichiga olgan massivni o'z ichiga olgan qatorni qaytaring. Maksi uchun massivingiz (189, "Tarmoq", 48) Maksial-ni qaytarishi kerak. Keyin hisobni ushbu qatordan olishingiz mumkin.

Yangilanish men ishlamayman, chunki men chiqarib tashlangan. Ma'lumot sahifasining misoli noto'g'ri, misol max yordamida to'g'ri natija beradi, ammo bu shunchaki tasodif.

2D qator uchun Maks () dan foydalana olmaysiz. Bu shunchaki har bir indeksning maksimal (bir nechta javoblarida ko'rsatilganidek) emas, eng katta massivni qaytaradi.

$ Cont \u003d massiv (); Forewean ($ _ atic) ($ cont \u003d $ _ Sr) ("Hisoblash"];) Var_Dump (Max (Max (Max ($ smet));

Teng bo'lgan o'rnatilgan Buning uchun funktsiya? (Hatto ehtimolsiz test)

** * ** * Yana bir ustunli 2D qatordan ustun ekstora * * * @ @ @param $ AcuralnamnName AcolnnamnName Acolnname Acolnyamn Acolnamn Acolname Acolnyamn AcaNamn nomidan tortib olish uchun, masalan, qazib olish uchun ajratish uchun. "O_NAME" * @param $ ACOLTEST (INTORTAL) ustuni, masalan, sinovdan o'tkazing. "O_ID" * @param $ atest (ixtiyoriy) sek. "\u003e \u003d 10", "," \u003d " $ Xolot \u003d ") ($ Mesey \u003d Caslay ($ a Arcay) ($ a Aroltest \u003d\u003d ') ($ (" ACLTEST \u003d\u003d ". $ [$ Acolatest]. $ . ";" Mres \u003d $ s "[$ acolname];) $ Mresni qaytaring;) // Qo'shimcha amal qilish

Massivlar - bu qulay tuzilgan ma'lumotlarni saqlash usullaridan biridir. Bunday massivning har bir elementi o'z joyiga, o'ziga xos va qadriyatiga ega. Massivlar tarkibi boshqacha bo'lishi mumkin, masalan, raqamlar, ismlar yoki oddiy raqamlar bazasi. Raqam haqida gapirganda, biz har xil vazifalarga, masalan, maksimal yoki minimal qiymatni ishlab chiqarishimiz mumkin. Qanday qilib bu turli dasturlash tillarida qanday hal qilinadi, bugun va muhokama qilinadi.

Biz PHP-da bir o'lchovli qatorning eng katta va eng kichik qiymatini topamiz

Barcha qatorlar ularning tuzilishida farq qiladi. Ikkita oddiy o'lchamli massivni ko'rib chiqing, ulardan biri tugmachalar yo'q:

$ My_array \u003d massiv (22, 24, 37, 74, 23, 2, 10);

va avvalgisi bilan bir xil, ammo kalitlar bilan allaqachon:

$ My_array \u003d massiv (1 \u003d\u003e 22, 2 \u003d\u003e 37,4, 4 \u003d\u003e 4 \u003d\u003e 6 \u003d\u003e 2, 7 \u003d\u003e 2);

Biz ushbu massivning maksimal va minimal qiymatini olib tashlashga harakat qilamiz. Buning uchun biz standart funktsiyalardan foydalanamiz " mix"Va" min."Mos ravishda:

Echo Max ($ my_array); // 74 echo min ($ my_array); // 2.

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

Massivning misolida

$ My_array \u003d massiv (1 \u003d\u003e 22, 2 \u003d\u003e 37,4, 4 \u003d\u003e 4 \u003d\u003e 6 \u003d\u003e 2, 7 \u003d\u003e 2);

bu shunday ko'rinadi:

$ maksimal \u003d arra_keylar ($ my_array, max ($ my_array)); $ maksi \u003d $ Maksi; // MINT \u003d CASEY_KEYS ($ my_Rey-ning maksimal qiymati ($ my_Reysh); $ min. $ min; // echoning minimal qiymati $ maksimal qiymatining kaliti; // maksimal qiymat natijasini qaytarib oling

Shunga ko'ra, maksimal qiymatning kaliti "4" va minimal - "6".

Biz PHP-da ko'p qirrali qatorning eng katta va eng kichik ahamiyatini topamiz

Ko'p o'lchovli massivlar o'zlarining uyalari bilan ajralib turadi. Masalan, ikki o'lchovli qator tugmachalarsiz quyidagicha ko'rinadi:

$ My_array \u003d Comray (massiv (22, 24, 37), massiv (74, 23, 2), massiv (10));

Va shunga ko'ra, ba'zi kalitlar bilan:

$ My_array \u003d Comray (1 \u003d\u003e 2 \u003d\u003e 24, 37, 37\u003e\u003e 2 \u003d\u003e 2 \u003d\u003e 2), massiv (7 \u003d\u003e 10)) massiv (7 \u003d\u003e 10));

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

Avvaliga, bu erda maksimal va minimal miqdorni topish, biz bir o'lchovli qatorni o'zgartiramiz:

$ Oute_Ray \u003d Casay (); Foreweae ($ my_array Sub_RAY: $ Out_array \u003d Comrey_Merge ($ Out_array, $ Sub_array);

Dizayn har ikkala variant uchun ham ishlaydi. Va bundan tashqari, bir o'lchovli qatorning misolidan so'ng, bizga kerak bo'lgan ma'lumotlarni qaytarib oling:

Echo Max ($ Out_array); // 74 echo min ($ Out_array); // 2.

Kichik bonus sifatida men boshqa mashhur ikki o'lchovli qatorga misol keltiraman:

$ My_array \u003d CABAY ("ID" \u003d\u003e "Sana", "Sana" \u003d "" Narx "," 5 "," 2 ". , "Sana" \u003d\u003e "2018-03-19", "Narx", "50", "Sana", "Sana", "2018-03-19", " Narx "\u003d\u003e" 25 ",);

Mashhurlikdan oldin men tarkibni emas, balki uning tuzilishiga misol bo'laman. Aytaylik, bu erda siz faqat "narx" ning eng katta va minimal qiymatini ishlab chiqarishingiz kerak.

Ushbu holatda sizga kerak bo'lgan birinchi narsa faqat ushbu ma'lumotlar bilan yangi qatorni olishdir:

$ Raqamlari \u003d Array_color ($ my_array, narx »);

Echo min ($ raqamlar); // 5 echo max ($ raqamlar); // 50.

Shu bilan birga, PHP massivlari bilan ishlash tugadi. Agar to'satdan sizning massivingiz boshqacha bo'lsa va siz uni qanday qilishni bilishni bilmayotgan bo'lsangiz - sharhlarda tegishli savolni so'rang, men sizga yordam berishga harakat qilaman.

Biz JavaScript-da bir o'lchovli qatorning eng katta va eng kichik qiymatini topamiz

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

Var My_array \u003d;

Bu erda indekslar ko'rsatilmagan. Ushbu massivda maksimal va minimal qiymatni topish uchun ikkita oddiy xususiyatni yozing:

Acaymax funktsiyasi (qaytarish Math.max (A, B) funktsiyasi (ACY.MIN) )));)

biz kerakli qadriyatlarni topish uchun ishlatiladi. Foydalanish ham oddiy:

Ogohlantirish (Arraymax (my_array)); // 74 ta ogohlantirish (Arveymin (my_array)); // 2.

Bunday holda, "2" va "74" raqami, minimal va maksimal qiymati ekranda massivning minimal va maksimal qiymati ko'rsatiladi.

Biz JavaScript-da ko'p qirrali qatorning eng ulug'i va eng kichik ma'nosini topamiz

JavaScript-da ko'p o'lchovli qatorlar sodda va ular shunga o'xshash ko'rinadi:

Var My_array \u003d [,,];

Keling, bu erda maksimal va minimal narsani topishga harakat qilaylik. Boshlash uchun biz bu sxema odatda bir o'lchovli sifatida tanish sxema sifatida tanish sxema sifatida tanishtirayotgan funktsiyani yozamiz:

Var Out_array \u003d; My_array.Foreaife (funktsiya (v) (ACRAY.PROTOTAPE.PUPUSPUSPRICT (Out_array, V););

Va ob'ekt yordamida " Matematika."Biz kerak bo'lgan qadriyatlarni olamiz:

Var Min \u003d Math.min.pplly (Null, Out_array); // Biz 2-Max \u003d Math.max.pplly (Null, Out_array); // 74 ta ogohlantirish (MAX); // ekranda 74-ni oling

Aslida, ob'ekt o'rniga " Matematika."Siz bir o'lchovli qator bilan foydalaniladigan funktsiyalarimizdan foydalanishingiz mumkin, ammo har qanday vazifani bir necha jihatdan hal qilishini tushunasiz - men bu erda bir oz boshqacha echimni keltirdim.

An'anaga ko'ra, kichik bonus. Bunday tuzilish bilan yana bir ko'p o'lchovli qatorni ko'rib chiqing:

Var My_array \u003d [["Bitta", "2018-03-19", 5], "Ikki", 2018-03-19 "2018-03-19", 25], 25] ],]];

Ko'rinib turibdiki, har bir qatorda raqamli qiymatlar uchinchi o'rinda. Keling, kodni yozamiz va ushbu ma'lumotlarning tegishli qiymatlarini oling:

Var Min \u003d + cheksizlik; Var Max \u003d --infinity; My_array.foreaife (funktsiya (element) (agar (+ element)< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item > Max) (maksimal \u003d element; // biz maksimal qiymatni qidirmoqdamiz)))))); ogohlantirish (min + "'+ max); // natijani ekranda ko'rsating

Ana xolos. Loyihani qo'llab-quvvatlashni unutmang. Oldindan ko'p qiziqarli narsalarni kuting!