internet pencereler Android
Genişletmek

PHP dizideki maksimum değeri bulun. PHP, iki boyutlu bir ilişkisel dizide minimum ve maksimum değerleri alıyor

(PHP 4, PHP 5, PHP 7)

min - En küçük değeri bulur

Açıklama

Keşke bir argüman olarak iletilirse - bir sayı, bir dizi, min () En küçüklerini döndürür. İlk argüman tamsayısı veya yüzerse, en az bir tane daha olmalıdır. Bu durumda, fonksiyon min () En küçüklerini iade edin.

Yorum Yap:

Farklı tiplerin değerleri standart karşılaştırma kuralları kullanılarak karşılaştırılır. Örneğin, sayısal bir dize değil ( dize) bir tamsayı ile karşılaştırılacak ( tamsayı) eşitmiş gibi 0 , ama birkaç satır ( dize) Alfabetik olarak karşılaştırın. İade değeri, ilk değişken türünü dönüştürmeden kaydeder.

İade değerleri

İşlev min () Standart karşılaştırma kurallarına göre "en küçük" olarak kabul edilen parametrenin değerini döndürür. Birkaç farklı tipte değerler birbirine eşitse (yani) 0 ve "ABC") İlki iade edilecektir.

Örnek

Örnek # 1 Kullanım Örneği min ()

echo min (2, 3, 1, 6, 7); // bir
yankı min (dizi (2, 4, 5)); // 2.

// string "hello", int ile karşılaştırıldığında, 0 olarak kabul edilir.
// Her iki değer de eşit olduğundan, parametrelerin sırası sonucu belirler
yankı min (0, "hello"); // 0.
yankı min ("merhaba", 0); // Merhaba.

// burada karşılaştırdık -1< 0, поэтому -1 является наименьшим значением
yankı min ("merhaba", - 1); // -bir

// farklı uzunluktaki dizileri karşılaştırırken, Min daha az uzun sürecek
$ Val \u003d min (dizi (2, 2, 2), dizisi (1, 1, 1, 1)); // dizi (2, 2, 2)

// Aynı uzunluktaki birkaç diziler soldan sağa kıyasla
// Bu örnek için: 2 \u003d\u003d 2, ancak 4< 5
$ val \u003d min (dizi (2, 4, 8), dizi (2, 5, 1)); // dizi (2, 4, 8)

// bir dizi ve dizi karşılaştırıldığında, dizinin asla iade edilmezse
// Dizilerin diğer tüm değerlerden daha büyük olduğu kabul edildiğinden beri
$ val \u003d min ("string", dizi (2, 5, 7), 42); // string

// eğer bir argüman boşsa ya da Boole ise, geri kalanıyla karşılaştıracak
// Yanlış kural kullanarak< TRUE, учитывая остальные типы аргументов
// Örneğin -10 ve 10'da tedavi edildiği kabul edilir.
$ val \u003d min (- 10, false, 10); // Yanlış
$ val \u003d min (- 10, , 10); // BOŞ.

// Öte yandan, 0 yanlış olarak kabul edilir, bu yüzden doğrudan "daha az"
$ Val \u003d min (0, true); // 0.
?>

Bu formatta bir dizim var:

Dizi (\u003d\u003e dizi (\u003d\u003e 117 \u003d\u003e ağ \u003d\u003e 16) \u003d\u003e dizi (\u003d\u003e 188 \u003d\u003e ftp \u003d\u003e 23) \u003d\u003e dizi (\u003d\u003e 189 \u003d\u003e internet \u003d\u003e 48))

Minimum ve maksimum "say" değerlerini elde etmenin iyi bir yolu var mı? Birkaç döngü kullanarak yapabilirim, ama en iyi yol olabileceğini düşündüm.

Diğerlerinden farklı olarak, bu sorunlar için MIN () / MAX () işlevlerini kullanamazsınız, çünkü bu işlevler içinde iletilen veri dizilerini anlamıyor (dizi). Bu işlevler yalnızca dizinin skaler elemanları için çalışır.

Görüntüyü başlat

MIN () ve MAX () kullanımının görünüşte doğru cevabı verdiği neden, belirsiz davranış olan tamsayılara türde döküm dizilerine aittir:

Integer'in dönüşüm davranışı diğer türler için tanımlanmamıştır. Uyarı olmadan değişebileceği gibi gözlemlenen herhangi bir davranışa güvenmeyin.

Yukarıdaki ifadem tip-döküm hakkında yanlıştı. Aslında, min () ve maksimum () dizileri ile çalışır, ancak OP'nin çalışmalarına ihtiyacı yoktur. MIN () ve MAX () birkaç diziyle veya dizi dizileri ile kullanırken, elemanlar soldan sağa kadar elemanla karşılaştırılır:

$ val \u003d min (dizi (2, 4, 8), dizi (2, 5, 1)); // dizisi (2, 4, 8) / * * Birinci elemana kıyasla ilk eleman: 2 \u003d\u003d 2 * İkinci elemana kıyasla ikinci eleman: 4< 5 * first array is considered the min and is returned */

OP, sorunun içine çevrilmiş olan, MIN () ve maks () 'nin doğrudan kullanımının doğru sonucu verdiğini gösteriyor. Dizinin ilk unsurları kimlik, bu yüzden min () ve maksimum () ilk önce onları, doğru sonuçlara yol açar, çünkü en düşük kimlik, en düşük sayıma sahip olan ve en yüksek kimlik olanıdır. Bu mümkün olan en yüksek sayıya sahip.

Son Düzenleme.

Doğru yol, döngüyü kullanmaktır.

$ a \u003d dizi (dizi ("id" \u003d\u003e 117, "isim" \u003d\u003e "ağ", "sayım" \u003d\u003e 16), dizi ("ID" \u003d\u003e 168, "ad" \u003d\u003e "FTP", " Sayım "\u003d\u003e 23), dizi (" id "\u003d\u003e 189," ad "\u003d\u003e" internet "," sayım "\u003d\u003e 48)); $ min \u003d php_int_max; $ Max \u003d 0; Foreach ($ a kadar $ i) ($ min \u003d min ($ min, $ i ["say"]); $ max \u003d max ($ max, $ i ["sayım"]);)

Maksimum () ve min () işlevlerini kullanabilirsiniz.

Birkaç döngü ile ne yaptınız? Biri yeterince yeterince 🙂

  1. Hem $ min ve maksimum hesabını hesaplayarak ilk öğeyi edinin.
  2. gerisi için yinelemeler, sayaçları her $ min ve $ maks ile karşılaştırır, daha az / daha azsa, yeni bir hesap değeri atayın

Maksimum / minimum her indeks içeren bir diziyi döndürürken maksimum / dak işlevlerini kullanabilirsiniz. Örneğiniz, maksimum bir dizi (189, "ağ", 48) iade etmelidir. Ardından hesabı bu dizisinden yakalayabilirsiniz.

Hariç tuttuğum gibi bu çalışmıyor. Bir referans sayfasının bir örneği yanıltıcıdır ve örnek, maksimum kullanarak doğru sonucu verir, ancak bu sadece bir tesadüf.

2D dizisi için maksimum () kullanamıyor gibi görünüyor. Basitçe, her indeksin maksimum () 'nin (birkaç cevapta belirtildiği gibi) en büyük diziyi döndürür.

$ Count \u003d dizi (); foreach ($ ARR olarak $ arr) ($ count \u003d $ _arr ["say"];) var_dump (maksimum ($ count), min ($ count));

Eşdeğer var yerleşik Bunun için işlev mi? (olasılık olmadan bile test yapmak)

/ ** * Başka bir sütun (@param) * @param $ Acolname sütun adından ekstraksiyon için özü çıkarmak için bir dizi dizisi * * * @param $ bir dizi dizisi olan 2B dizinden bir sütun çıkarır. "O_NAME" * @PARAM $ ACOLTEST (isteğe bağlı) Sütun adı, örneğin bir test yapmak için. "O_ID" * @param $ test için (isteğe bağlı) dize eski. "\u003e \u003d 10", "\u003d\u003d". "$ TOTO." "* * @ Return 1D Sadece ekstrakte edilmiş sütun * @ Access halkı * @Access Halk * / Fonksiyon Extraccolfromamarray ($ aarray, $ acolname, $ acoltest \u003d", $ Entest \u003d "") ($ MRES \u003d dizi (); foreach ($ aarray $ a kadar) (eğer (((($ acoltest \u003d\u003d ") || (eval (" return ". $ 'I [$ acoltest]. $ Entest . ";"))) ($ MRES \u003d $ ROW [$ ACOLNAME];)) $ MRES DÖNÜŞÜMÜ;) // Extencolfromarray

Diziler, uygun yapılandırılmış depolama yöntemlerinden biridir. Böyle bir dizinin her bir elemanı kendi yeri, kendi anahtarı ve değeri vardır. Dizilerin içeriği, örneğin sayıların, isimlerin veya basit sayısal değerlerin tabanı olarak farklı olabilir. Numara hakkında konuşursak, örneğin, maksimum veya minimum değerin çıktısına kadar her türlü göreve kadar çıkabiliriz. Bunun farklı programlama dillerinde nasıl çözüldüğü hakkında, bugün ve tartışılacak.

PHP'de tek boyutlu bir dizinin en büyük ve en küçük değerini buluruz

Tüm diziler yapılarında farklılık gösterir. Biri anahtar içermeyen iki basit tek boyutlu diziyi düşünün:

$ My_Array \u003d Dizi (22, 24, 37, 74, 23, 2, 10);

ve bir tanesi ile aynı, ancak zaten anahtarlarla:

$ My_array \u003d dizi (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);

Bu dizinin maksimum ve minimum değerini kaldırmaya çalışacağız. Bunu yapmak için standart işlevleri kullanacağız " maksimum"Ve" min."Sırasıyla:

Echo max ($ my_array); // 74 Eko Min ($ My_Array) çekin; // geri çekilme 2.

İkinci diziyi daha ayrıntılı olarak düşünürsek, sonuç olarak, maksimum veya minimum değerlerin anahtarını alabiliyoruz.

Dizi örneğinde

$ My_array \u003d dizi (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);

bunun gibi görünecek:

$ max \u003d array_keys ($ My_Array, Max ($ my_array)); $ max \u003d $ maksimum; // $ min maksimum değeri \u003d array_keys ($ my_array, min ($ my_array)); $ min \u003d $ min; // ECHO $ \u200b\u200bMAX'ın minimum değerinin anahtarı; // Maksimum değerin sonucunu geri çekin

Buna göre, maksimum değerin anahtarı "4" ve minimum - "6".

Çok boyutlu dizinin PHP üzerindeki en büyük ve en küçük önemini buluruz

Çok boyutlu diziler yuvaları ile karakterize edilir. Örneğin, iki boyutlu bir dizi anahtarsız görünecektir:

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

Ve buna göre, bazı tuşlarla:

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

Bu durumda, maksimum ve minimum değerleri bulmak biraz zordur, aynı zamanda gerçekten de.

Başlamak için, burada maksimum ve minimum bulmak için bir diziyi tek boyutlu olarak dönüştürüyoruz:

$ Out_array \u003d dizi (); Foreach ($ my_array olarak $ sub_array) ($ out_array \u003d array_merge ($ out_array, $ sub_array);)

Tasarım yukarıdaki her iki seçenek için çalışır. Ve ayrıca, tek boyutlu bir dizinin örneğini takiben, ihtiyacımız olan verileri geri çekin:

Echo max ($ out_array); // 74 Eko Min ($ out_array) çekin; // geri çekilme 2.

Küçük bir bonus olarak, başka bir popüler iki boyutlu diziye örnek vereceğim:

$ My_array \u003d dizi (dizi ("id" \u003d\u003e "1", "tarih" \u003d\u003e "2018-03-19", "fiyat" \u003d\u003e "5",), dizi ("ID" \u003d\u003e "2" , "Tarih" \u003d\u003e "2018-03-19", "Fiyat" \u003d\u003e "50",), Dizi ("ID" \u003d\u003e "3", "Tarih" \u003d\u003e "2018-03-19", " Fiyat "\u003d\u003e" 25 ",));

Popülerlikten önce, içerik değil, yapısının bir örneği demek istiyorum. Burada maksimum ve minimum değer yalnızca "fiyat" çıktısını yapmanız gerektiğini varsayalım.

Bu durumda ilk ihtiyacınız olan şey, yalnızca bu verilerle yeni bir dizi elde etmektir:

$ Sayılar \u003d array_column ($ My_Array, "Fiyat");

Yankı min ($ number); // 5 eko maksimum ($ numara) çekin; // 50'yi çek.

Bunda, PHP dizileri ile çalışmak tamamlandı. Eğer aniden dizinizin yapısı farklıdır ve nasıl işleme koyacağınızı bilmiyorsunuz - yorumlarda uygun soruyu sorun, size yardım etmeye çalışacağım.

JavaScript'te tek boyutlu bir dizinin en büyük ve en küçük değerini buluruz

PHP'nin aksine, Javascript'te, dizilerin türü çok daha kolaydır ve basit bir boyutlu dizi şöyle görünecektir:

Var my_array \u003d;

Buradaki dizinler belirtilmedi. Bu dizideki maksimum ve minimum değeri bulmak için basit özelliklerinizden ikisini yazın:

Fonksiyon arraymax (dönüş array.Reduce (dönüş matematik.max (a, b)));) fonksiyon arraymin (dizi) (Dönüş dizisi. ));)

İhtiyacımız olan değerleri bulmak için kullanılır. Kullanım da basittir:

Uyarı (Arraymax (My_Array)); // 74 Uyarıyı Geri Çekme (Arraymin (My_Array)); // geri çekilme 2.

Bu durumda, "2" ve "74" sayısı, dizinin minimum ve maksimum değeri ekranda görüntülenecektir.

JavaScript üzerindeki çok boyutlu dizinin en büyük ve en küçük anlamını buluyoruz.

Javascript'teki çok boyutlu diziler basittir ve şöyle görünürler:

Var my_array \u003d [,,];

Burada maksimum ve minimum bulmaya çalışalım. Başlamak için, şemanın genellikle bu diziyi tek boyutlu olarak tanıdık bir şema olarak tanıdığı bir fonksiyon yazacağız:

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

Ve nesnenin yardımıyla " Matematik."İhtiyacımız olan değerleri alıyoruz:

Var min \u003d math.min.apply (, out_array); // 2 var max \u003d math.max.Apply (, out_array) elde ediyoruz; // 74 alarm (maks) kazanın; // ekranda 74 çekin

Aslında, nesne yerine " Matematik."Bir seçenekte kullanılan işlevlerimizi tek boyutlu bir diziyle kullanabilirsiniz, ancak herhangi bir görevin birkaç şekilde çözülebileceğini anladığınız için - burada biraz farklı bir çözüm getirdim.

Geleneğe göre, küçük bir bonus. Böyle bir yapıya sahip başka bir çok boyutlu diziyi düşünün:

Var my_array \u003d [["bir", "2018-03-19", 5], ["iki", "2018-03-19", 50], ["üç", "2018-03-19", 25 ],];

Gördüğümüz gibi, her dizideki sayısal değerler üçüncü sırada. Kodu yazalım ve yalnızca bu verilerin uygun değerlerini edelim:

Var min \u003d + sonsuzluk; var max \u003d -infite; My_array.foreach (İşlev (Öğe) (eğer (+ öğe< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item > Max) (max \u003d + ürün; // maksimum değeri arıyoruz))); Uyarı (min + "" + maks); // Ekrandaki sonucu görüntüleyin

Bu kadar. Projeyi desteklemeyi unutmayın. Önünde birçok ilginç şeyleri bekliyor!