az internet ablakok Android

PHP Keresse meg a maximális értéket a tömbben. A PHP minimális és maximális értékeket kap egy kétdimenziós asszociatív tömbben

(PHP 4, PHP 5, PHP 7)

min - Megtalálja a legkisebb értéket

Leírás

Ha csak egy argumentumként kerül továbbításra - a számok tömbje, min () Visszaadja a legkisebbeket. Ha az első érv egész szám, akkor legalább egy újabbnak kell lennie. Ebben az esetben a funkció min () Visszaadja a legkisebbeket.

Megjegyzés:

A különböző típusú értékeket a szabványos összehasonlítási szabályok segítségével hasonlítják össze. Például nem numerikus karakterlánc ( húr) Összehasonlítjuk az egész számmal ( egész szám) mintha egyenlő lenne 0 , de több sor ( húr) Összegyűjti az ábécét. Visszatérési érték menti a kezdeti típusú változó, átalakítás nélkül.

Visszatérési értékek

Funkció min () Visszaadja a paraméter értékét, amely a szabványos összehasonlító szabályok szerint "a legkisebbnek" tekinthető. Ha különböző típusú értékek egyenlőek egymással (azaz 0 és "ABC") Az első visszaküldik.

Példák

# 1. példa a használatra min ()

echo min (2, 3, 1, 6, 7); //
echo min (tömb (2, 4, 5)); // 2.

// a "hello" karakterlánc, az int összehasonlítva 0
// Mivel mindkét érték egyenlő, a paraméterek sorrendje meghatározza az eredményt
echo min (0, "hello"); // 0.
echo min ("hello", 0); // Helló.

// itt összehasonlítjuk -1< 0, поэтому -1 является наименьшим значением
echo min ("hello", - 1); // -on

// A különböző hosszúságú tömbök összehasonlításakor a min kevesebb hosszú lesz
$ Val \u003d min (tömb (2, 2, 2), tömb (1, 1, 1, 1)); // Array (2, 2, 2)

// több azonos hosszúságú tömböt hasonlítanak össze balról jobbra
// Ehhez a példához: 2 \u003d\u003d 2, de 4< 5
$ val \u003d min (tömb (2, 4, 8), tömb (2, 5, 1)); // Array (2, 4, 8)

// ha egy tömböt és nem tömböt hasonlítják össze, akkor a tömb soha nem kerül vissza
// Mivel a tömbök nagyok, mint az összes többi érték
$ val \u003d min ("string", tömb (2, 5, 7), 42); // Húr

// Ha az egyik argumentum null vagy logikai, akkor összehasonlítja a többit
// a hamis szabály használatával< TRUE, учитывая остальные типы аргументов
A -10-es és 10-es példában a
$ val \u003d min (- 10, hamis, 10); // Hamis
$ val \u003d min (- 10, , 10); // NULLA.

// Másrészt a 0 hamisnak tekinthető, így "kevésbé", mint az igaz
$ Val \u003d min (0, igaz); // 0.
?>

Van egy tömbem ebben a formátumban:

Tömb (\u003d\u003e tömb (\u003d\u003e 117 \u003d\u003e Networking \u003d\u003e 16) \u003d\u003e tömb (\u003d\u003e 188 \u003d\u003e ftp \u003d\u003e 23) \u003d\u003e Array (\u003d\u003e 189 \u003d\u003e Internet \u003d\u003e 48)

Van egy jó módja annak, hogy megkapja a "szám" minimális és maximális értékeit? Meg tudtam csinálni több ciklus használatával, de azt hittem, ez lehet a legjobb módja.

Ellentétben másokkal, akkor nem használhatja a MIN () / Max () függvények ezt a problémát, mert ezek a funkciók nem értik a adattömbökkel továbbított őket (array). Ezek a funkciók csak a tömb skalárelemekre működnek.

Indítsa el a képet

Az ok, ami miatt a használata min () és max () látszólag megadja a helyes választ, tartozik a típuskonverziókról tömbök az egész, hogy a bizonytalan viselkedés:

Az Integer konverziós viselkedése más típusok esetében nincs meghatározva. Ne támaszkodjon a megfigyelt viselkedésre, mivel figyelmeztetés nélkül változhat.

A Típusöntvény feletti nyilatkozatom rossz volt. Tény, hogy Min () és Max () a tömbökkel dolgozik, de nem, hogyan kell az OP-t a munkájukra. Ha min () és max () használata több tömbel vagy tömbökkel, elemeket hasonlítunk össze az elemhez balról jobbra:

$ val \u003d min (tömb (2, 4, 8), tömb (2, 5, 1)); // Array (2, 4, 8) / * * első elem az első elemhez képest: 2 \u003d\u003d 2 * második elem a második elemhez képest: 4< 5 * first array is considered the min and is returned */

Az OP lefordítva a probléma azt mutatja, hogy a MIN () és a Max () közvetlen használata miért tűnik megfelelő eredményt. A tömb első elemei id, így min () és max () először hasonlítják össze őket, az úton, a megfelelő eredményhez vezetnek, mert a legalacsonyabb azonosító az, aki a legalacsonyabb számmal és a legmagasabb azonosítóval rendelkezik amely a lehető legmagasabb számmal rendelkezik.

Végezze el a szerkesztést.

A helyes út a ciklus használata.

$ A \u003d Array (Array ("ID" \u003d\u003e 117, "Név" \u003d\u003e "Networking", "Count" \u003d\u003e 16), Array ("ID" \u003d\u003e 188, "Név" \u003d\u003e "FTP", COUNT "\u003d\u003e 23), tömb (" ID "\u003d\u003e 189," Név "\u003d\u003e" Internet "," COUNT "\u003d\u003e 48); $ min \u003d php_int_max; $ Max \u003d 0; Foreach ($ a as $ i) ($ min \u003d min \u003d min, $ min, $ i ["count"]); $ max \u003d max ($ max, $ i ["count"]);)

Használhatja a max () és min () funkciókat.

Mit csináltál több ciklussal? Az egyik elég elég 🙂

  1. Szerezd meg az első elemet a $ min és max
  2. az iterációk a többihez, hasonlítsa össze a mérőt minden $ min és $ max, ha kevesebb / több, hozzon létre egy új fiók értéket

Használhatja a MAX / MIN funkcionál visszatérnek egy tömb, amely maximum / minimum az egyes mutatók. A példa visszaadja a tömböt (189, "Networking", 48) max. Ezután megragadhatja a fiókot ebből a tömbből.

Frissítés Ez nem működik, amint kizártam. A referenciapéldának egy példája félrevezető, és a példa a megfelelő eredményt max, de ez csak egy egybeesés.

Úgy tűnik, hogy nem használhat max () egy 2D tömböt. Egyszerűen visszaadja a legnagyobb tömböt, nem az egyes indexek max () max () értékét (amint több válaszban is jelezve).

$ COUNT \u003d tömb (); foreach ($ ARR AS $ _ARR) ($ count \u003d $ \u003d $ _arr ["count"];) var_dump (max ($ count), min ($ count));

Egyenértékű beépített Ennek funkciója? (Még a lehetőség nélkül is tesztelés)

/ ** * Az oszlopot egy 2D-es tömbből kivonja, opcionális választékkal egy másik oszlopban * * * @param $ egy tömböt, hogy kivonja a * @param $ Acolname oszlop nevét az extrakcióhoz. "O_name" * @param $ Acoltest (opcionális) oszlopnév egy teszt elvégzéséhez. "O_ID" * @param $ Atst (opcionális) karakterlánc teszt ex. "\u003e \u003d 10", "\u003d\u003d". "$ Toto." "" "" * @Return 1d egy tömb csak a kivont oszlop * @access nyilvános * / funkció kivonáscolfromamarray ($ Aarray, $ Acolname, $ Acoltest \u003d "" $ Atst \u003d "") ($ Mres \u003d Array (); foreach ($ Aarray, mint $ sor) (ha ($ Acoltest \u003d\u003d ") || (eval (" Return ". $ Sor [$ Acoltest]. $ Atst . ")"))) ($ Mres \u003d $ sor [$ acolname];)) $ $ Mres;) // kivonáscolfromarray

A tömbök az egyik kényelmes strukturált információszerkezet. Az ilyen tömb minden egyes eleme saját helyével, saját kulcsával és értékével rendelkezik. A tömbök tartalma eltérő lehet, mint például a számok, nevek vagy egyszerű numerikus értékek alapja. A számról beszélve mindenféle feladathoz juthatunk, például a maximális vagy a minimális érték kimenete. Arról, hogy ez hogyan oldódik meg különböző programozási nyelveken, ma és megvitatásra kerül.

A PHP-nél egydimenziós tömb legnagyobb és legkisebb értékét találjuk

Minden tömb különbözik a szerkezetükben. Tekintsünk két egyszerű egydimenziós tömböt, amelyek közül az egyik nem tartalmaz kulcsokat:

$ My_array \u003d tömb (22, 24, 37, 74, 23, 2, 10);

És az előzővel azonos, de már kulcsokkal:

$ My_array \u003d tömb (1 \u003d\u003e 22, 2 \u003d\u003e 24, 3 \u003d\u003e 37, 4 \u003d\u003e 74, 5 \u003d\u003e 23, 6 \u003d\u003e 2, 7 \u003d\u003e 10);

Megpróbáljuk eltávolítani a tömb maximális és minimális értékét. Ehhez szokásos funkciókat fogunk használni " max"És" min."Illetőleg:

Echo max ($ my_array); // visszavonja a 74 echo min ($ my_array); // visszavonja a 2-et.

Ha részletesebben tartjuk a második tömböt, akkor ennek eredményeként megkaphatjuk a legfontosabb vagy minimális értékek kulcsát.

A tömb példáján

$ My_array \u003d tömb (1 \u003d\u003e 22, 2 \u003d\u003e 24, 3 \u003d\u003e 37, 4 \u003d\u003e 74, 5 \u003d\u003e 23, 6 \u003d\u003e 2, 7 \u003d\u003e 10);

ez így fog kinézni:

$ max \u003d array_keys ($ my_array, max ($ my_array)); $ max \u003d $ max, // Maximális érték $ min \u003d Array_Keys ($ my_array, min ($ my_array)); $ min \u003d $ min; // az ECHO MAX minimális értékének legfontosabb; // visszavonja a maximális érték eredményét

Ennek megfelelően a maximális érték legfontosabb a "4", és a minimális - "6".

Megtaláljuk a többdimenziós tömb legnagyobb és legkisebb fontosságát a PHP-n

A többdimenziós tömböket a fészkelés jellemzi. Például egy kétdimenziós tömb a következő gombok nélkül jelenik meg:

$ My_array \u003d tömb (tömb (22, 24, 37), tömb (74, 23, 2), tömb (10));

És ennek megfelelően néhány kulcs segítségével:

$ My_array \u003d tömb (tömb (1 \u003d\u003e 22, 2 \u003d\u003e 24, 3 \u003d\u003e 37), tömb (4 \u003d\u003e 74, 5 \u003d\u003e 23, 6 \u003d\u003e 2), tömb (7 \u003d\u003e 10));

Ebben az esetben a maximális és a minimális értékek megtalálása egy kicsit nehéz, de valójában is.

Kezdjük, hogy megtalálja a maximumot és minimálisan itt, átalakítjuk a tömböt egydimenziósnak:

$ Out_array \u003d tömb (); Foreach ($ my_array, mint $ sub_array) ($ out_array \u003d array_merge ($ out_array, $ sub_array);)

A tervezés mindkét opciónál működik. És tovább, az egydimenziós tömb példáján, visszavonja az adatokat, amelyekre szükségünk van:

Echo max ($ out_array); // visszavonja a 74 echo min ($ out_array); // visszavonja a 2-et.

Kis bónuszként példát adok egy másik népszerű kétdimenziós tömbre:

$ My_array \u003d tömb (tömb ("id" \u003d\u003e "1", "dátum" \u003d\u003e "2018-03-19", "ár" \u003d\u003e "5",), tömb ("ID" \u003d\u003e "2" , "Dátum" \u003d\u003e "2018-03-19", "ár" \u003d\u003e "50",), tömb ("ID" \u003d\u003e "3", "Dátum" \u003d\u003e "2018-03-19", " Ár "\u003d\u003e" 25 ",));

A népszerűség előtt nem értem a tartalmat, hanem egy példát a szerkezetére. Tegyük fel, hogy itt meg kell adnod a maximális és minimális értékű "ár" kimenetét.

Az első dolog, amire szükséged van ebben az esetben, hogy új tömböt kapjon ezekkel az adatokkal:

$ Számok \u003d Array_Column ($ my_array, "ár");

Echo min ($ számok); // visszavonja az 5 echo max ($ számokat); // visszavonja az 50-et.

Ezen a PHP-tömbökkel való munka befejeződött. Ha hirtelen a tömb szerkezete más, és nem tudja, hogyan kell feldolgozni - kérdezze meg a megfelelő kérdést a megjegyzésekben, megpróbálok segíteni.

Megtaláljuk a JavaScript egydimenziós tömbjének legnagyobb és legkisebb értékét

A PHP-vel ellentétben a JavaScriptben a tömbök típusa sokkal könnyebb, és egy egyszerű egydimenziós tömb jelenik meg:

Var my_array \u003d;

Az indexek itt nincs megadva. Annak érdekében, hogy megtalálja a maximális és minimális értéket ebben a tömbben, írjon két egyszerű funkcióját:

Funkció Arraymax (Return Array.Reduce (Return Math.max (A, B););) funkció Arraymin (tömb) (RETURNARY.REDUCE (A, B) (A, B) (A, B); )););)

amelyeket a szükséges értékek megtalálására használnak. A használat egyszerű:

Riasztás (Arraymax (my_array)); // visszavonja a 74 figyelmeztetést (Arraymin (my_array)); // visszavonja a 2-et.

Ebben az esetben a "2" és a "74" szám, mint a tömb minimális és maximális értéke a képernyőn megjelenik.

A JavaScript többdimenziós tömbjének legnagyobb és legkisebb jelentését találjuk

A JavaScript többdimenziós tömbjei olyan egyszerűek, és így néznek ki:

Var my_array \u003d [,,];

Próbáljunk meg maximumot találni. Kezdjük, akkor olyan funkciót írunk, amellyel a rendszer általában ezt a tömböt ismerős rendszerként bemutatja, mint egydimenziós:

Var out_array \u003d; My_array.foreach (funkció (v) (array.prototype.push.Apply (out_array, v);)));

És az objektum segítségével " Matematika."Megkapjuk az értékeket, amire szükségünk van:

Var min \u003d Math.Min.Apply (, out_array); // kapunk 2 var max \u003d math.max.apply (, out_array); // 74 figyelmeztetés (max) fogadása; // visszavonja a 74-et a képernyőn

Valójában az objektum helyett " Matematika."Használhatja az egydimenziós tömbökkel használt opciókat, de azt érti, hogy bármilyen feladat többféleképpen megoldható - itt egy kicsit más megoldást hozott.

Nos, a hagyomány szerint egy kis bónusz. Tekintsünk egy másik többdimenziós tömböt ilyen struktúrával:

Var my_array \u003d [["1", "2018-03-19", 5], ["két", "2018-03-19", 50], ["Három", "2018-03-19", 25 ],];

Amint látjuk, az egyes tömbben lévő numerikus értékek harmadik helyen vannak. Írjuk meg a kódot, és csak az adatok megfelelő értékeit kapjuk:

Var min \u003d + végtelen; var max \u003d -finity; My_array.foreach (funkció (tétel) (ha (+ tétel)< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item > Max) (max \u003d + elem; // A maximális értéket keresjük))))); riasztás (min + "" + max); // megjeleníti az eredményt a képernyőn

Ez minden. Ne felejtsd el támogatni a projektet. Előtt sok érdekes dolgot vársz!