php dizisinin minimum ve maksimum değeri. PHP 2B ilişkisel dizideki minimum ve maksimum değerleri alın. JavaScript'te çok boyutlu bir dizinin en büyük ve en küçük değerini bulma

  • 03.11.2019

(PHP 4, PHP 5, PHP 7)

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

Açıklama

Argüman olarak yalnızca bir tanesi iletilirse - bir sayı dizisi, dk () en küçüğünü döndürür. İlk argüman bir tamsayı veya bir kayan nokta ise, en az bir tane daha olmalıdır. Bu durumda, fonksiyon dk () en küçüğünü döndürür.

Yorum Yap:

Farklı türlerdeki değerler, standart karşılaştırma kuralları kullanılarak karşılaştırılır. Örneğin, sayısal olmayan bir dize ( sicim) bir tamsayı ile karşılaştıracaktır ( tam sayı) eşitmiş gibi 0 , ancak birkaç satır ( sicim) alfabetik olarak karşılaştırılacaktır. Dönüş değeri, dönüşüm olmadan değişkenin orijinal türünü koruyacaktır.

Dönüş Değerleri

İşlev dk () standart karşılaştırma kurallarına göre "en küçük" olarak kabul edilen parametrenin değerini döndürür. Farklı türlerdeki birkaç değer eşitse (örn. 0 ve "ABC"), ilki iade edilecektir.

Örnekleri

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

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

// "merhaba" dizesi, bir int ile karşılaştırıldığında 0 olarak kabul edilir
// Her iki değer de eşit olduğu için parametrelerin sırası sonucu belirler
yankı dk (0, "merhaba"); // 0
yankı min ("merhaba", 0); // Merhaba

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

// Farklı uzunluktaki dizileri karşılaştırırken min, daha kısa olanı döndürür
$ val = min (dizi (2, 2, 2), dizi (1, 1, 1, 1)); // dizi (2, 2, 2)

// Aynı uzunluktaki birkaç dizi soldan sağa karşılaştırılır
// bu örnek için: 2 == 2, ancak 4< 5
$ val = min (dizi (2, 4, 8), dizi (2, 5, 1)); // dizi (2, 4, 8)

// Bir dizi ve dizi olmayanlar karşılaştırılırsa, dizi asla döndürülmez
// diziler diğer tüm değerlerden daha büyük kabul edildiğinden
$ val = min ("string", dizi (2, 5, 7), 42); // sicim

// Bir argüman NULL veya boole ise, geri kalanıyla karşılaştırılacaktır.
// YANLIŞ kuralını kullanarak< TRUE, учитывая остальные типы аргументов
// Yukarıdaki örnekte -10 ve 10 DOĞRU olarak kabul edilir
$ değer = min (- 10, YANLIŞ, 10); // YANLIŞ
$ değer = min (- 10, NULL, 10); // BOŞ

// Öte yandan, 0 YANLIŞ olarak kabul edilir, bu nedenle DOĞRU'dan "daha az" olur
$ değer = dak (0, DOĞRU); // 0
?>


Bunun gibi bir dizim var:

Dizi (0 => dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200",), 1 => dizi ("id" => "20110209172747", "Tarih" => "2011-02-09", "Ağırlık" => "180",), 2 => dizi ("id" => "20110209172827", "Tarih" => "2011- 02-09 "," Ağırlık "=>" 175 ",), 3 => dizi (" id "=>" 20110211204433 "," Tarih "=>" 2011-02-11 "," Ağırlık "=>" 195 ",),)

Minimum ve maksimum ağırlık değerlerini çıkarmam gerekiyor. Bu örnekte

$ min_değer = 175

$ maks_değer = 200

Bunun nasıl yapılacağına dair herhangi bir yardım? Teşekkürler!


2018-05-01 03:06

Yanıtlar:

Seçenek 1. İlk olarak, şu sayıları elde etmek için diziyi eşleştirirsiniz (tam bilgi değil):

$ sayılar = dizi_sütun ($ dizi, "ağırlık")

Sonra min ve max elde edersiniz:

$ dak = dak ($ ​​sayılar); $ maks = maks ($ sayılar);

Seçenek 2. (Yalnızca PHP 5.5'iniz yoksa.) Seçenek 1 ile aynı, ancak değerleri dışarı çıkarmak için array_map kullanın:

$ sayılar = dizi_map (işlev ($ ayrıntılar) (dönüş $ ayrıntılar ["Ağırlık"];), $ dizi);

Seçenek 3.

Seçenek 4. Minimum minimum maksimuma ihtiyacınız varsa, array_reduce () daha hızlı olabilir:

$ dak = array_reduce ($ dizi, işlev ($ dak, $ ayrıntılar) (dönüş min ($ dak, $ ayrıntılar ["ağırlık"]);), PHP_INT_MAX);

Bu daha fazla min () s yapar, ancak çok hızlıdırlar. PHP_INT_MAX maksimumdan başlamalı ve alçalmalı. Aynısını $ max için de yapabilirsiniz, ancak 0'dan başlarsınız veya -PHP_INT_MAX,


2018-05-01 03:11

Foreach ($ dizisi as $ k => $ v) ($ tArray [$ k] = $ v ["Weight"];) $ min_value = min ($ tArray); $ max_value = max ($ tArray);


2018-05-01 03:09

PHP 5.5+ kullanan kişiler için bu, array_column ile çok daha kolay yapılabilir. Bu çirkin diziler için gerekli değildir.

Maksimum değer nasıl elde edilir:

$ en yüksek_ağırlık = max (array_column ($ ayrıntılar, "Ağırlık"));

Minimum değer nasıl elde edilir

$ low_weight = min (array_column ($ ayrıntılar, "Ağırlık"));


2018-01-24 11:04

Yukarıdaki çözümlerin her ikisinin de diziler (birincisi ve ikincisi dizi) şeklinde ek depolama kullandığını ve ardından "ekstra depolama" dizisini kullanarak minimum ve maksimum değerleri bulduğunuzu belirtmek ilginçtir. Bu, gerçek programlama dünyasında kabul edilebilir olsa da ("ekstra" depolama hakkında iki bit kim verir?), Programlama 101'de size bir "C" verir.

Min ve max bulma sorunu, sadece iki ekstra bellek yuvası ile kolayca çözülebilir

$ first = intval ($ input ["Ağırlık"]); $ dak = $ ilk; $ max = $ ilk; foreach ($ veri olarak $ girişi) ($ ağırlık = intval ($ veri ["Ağırlık"]); if ($ ağırlık<= $min) { $min = $weight ; } if($weight >$ max) ($ max = $ ağırlık;)) echo "min = $min ve max = $ max \ n";


2018-05-01 06:08

$ num = dizi (0 => dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200"), 1 => dizi ("id" => "20110209172747", "Tarih" => "2011-02-09", "Ağırlık" => "180"), 2 => dizi ("id" => "20110209172827", "Tarih" => "2011 -02-09 "," Ağırlık "=>" 175 "), 3 => dizi (" id "=>" 20110211204433 "," Tarih "=>" 2011-02-11 "," Ağırlık "=>" 195 ")); foreach ($ num as $ anahtar => $ değer) ($ ağırlık = $ değer ["Ağırlık"];) echo max ($ ağırlık); yankı min ($ ağırlık);


2018-01-10 06:44

dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200",), 1 => dizi ("id" => "20110209172747", " Tarih "=>" 2011-02-09 "," Ağırlık "=>" 180 ",), 2 => dizi (" id "=>" 20110209172827 "," Tarih "=>" 2011-02-09 ", "Ağırlık" => "175",), 3 => dizi ("id" => "20110211204433", "Tarih" => "2011-02-11", "Ağırlık" => "195",),) ; foreach ($ anahtar => $ değer olarak $ dizisi) ($ sonuç [$ anahtar] = $ değer ["Ağırlık"];) $ min = min ($ sonuç); $ maks = maks ($ sonuç); echo "Minnumum sayıdaki dizi:". $ min. "
"; echo" Maksimum sayıdaki dizi: ". $ max."
"; ?>


2017-11-11 19:33

$ Location_Category_array = dizi (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); // Dizideki değerleri sayar, associatve dizisini döndürür print_r ($ count); $ maksimum boyut = 0; $ maksimum değer = 0; foreach ($, $ a => $ y olarak sayılır) (echo "
". $ a." = ". $ y; if ($ y> = $ maxvalue) ($ maxvalue = $ y; if ($ a> $ maxsize) ($ maxsize = $ a;))) echo"
max = ". $ maxsize;

Bu biçimde bir dizim var:

Dizi (=> Dizi (=> 117 => Ağ Oluşturma => 16) => Dizi (=> 188 => FTP => 23) => Dizi (=> 189 => İnternet => 48))

"Sayım"ın minimum ve maksimum değerlerini almanın iyi bir yolu var mı? Bunu birden fazla döngü kullanarak yapabilirdim, ancak daha iyi bir yol olabileceğini düşündüm.

Diğerlerinden farklı olarak min() / max() fonksiyonlarını bu problem için kullanamazsınız çünkü bu fonksiyonlar kendilerine iletilen dizileri (dizileri) anlamazlar. Bu işlevler yalnızca skaler dizi öğeleri için çalışır.

BAŞLANGIÇ GÖRÜNTÜSÜ

Min () ve max () kullanmanın doğru cevabı vermesinin nedeni, tanımsız davranış olan tamsayılara tip döküm dizileriyle ilgilidir:

Tam sayıya dönüştürme davranışı diğer türler için tanımsızdır. Uyarı vermeden değişebileceği için gözlemlenebilir herhangi bir davranışa güvenmeyin.

Tip dökümüyle ilgili yukarıdaki ifadem yanlıştı. Aslında min () ve max () diziler üzerinde çalışır, ancak OP'nin çalışması için ihtiyaç duyduğu şekilde değil. Min () ve max () birden çok diziyle veya dizi öğeleri dizisiyle kullanıldığında, öğeler soldan sağa öğe öğe karşılaştırılır:

$ val = min (dizi (2, 4, 8), dizi (2, 5, 1)); // dizi (2, 4, 8) / * * ilk elemanla karşılaştırıldığında ilk eleman: 2 == 2 * ikinci elemanla karşılaştırıldığında ikinci eleman: 4< 5 * first array is considered the min and is returned */

OP'nin sorununa çevrildiğinde, min () ve max () öğelerinin doğrudan kullanımının neden doğru sonucu verdiği görülüyor. Dizinin ilk öğeleri id'dir, bu nedenle min () ve max () önce bunları karşılaştırın, bu arada, doğru sonuca yol açar, çünkü en düşük id, en düşük sayıya sahip olandır ve en yüksek id, en düşük sayıya sahip olandır. en yüksek sayı.

SON DÜZENLEME

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

$ a = dizi (dizi ("id" => 117, "name" => "Ağ Oluşturma", "count" => 16), dizi ("id" => 188, "name" => "FTP", " sayım "=> 23), dizi (" id "=> 189," ad "=>" İnternet "," sayım "=> 48)); $ dak = PHP_INT_MAX; $ maks = 0; foreach ($ a as $ i) ($ min = min ($ min, $ i ["count"]); $ max = max ($ max, $ i ["count"]);)

max() ve min() fonksiyonlarını kullanabilirsiniz.

Çoklu döngülerle ne yaptınız? Bir tane yeter 🙂

  1. Hem $ min hem de max'i sayarak ilk öğeyi alın
  2. geri kalanını yineleyin, sayacı her $ min ve $ max ile karşılaştırın, daha az / daha fazla ise yeni bir sayım değeri atayın

Her dizinin maksimum/minimumunu içeren bir dizi döndürecekleri için max/min işlevlerini kullanabilirsiniz. Örneğiniz, maks. Sonra bu diziden puanı alabilirsiniz.

Bunu güncellemek, ekarte ettiğim gibi çalışmıyor. Kılavuz sayfası örneği yanıltıcıdır ve örnek, max kullanarak doğru sonucu verir, ancak bu sadece bir tesadüftür.

2B dizide max () kullanamazsınız. Her dizinin max () değerini değil (birden çok yanıtta belirtildiği gibi) yalnızca en büyük diziyi döndürür.

$ sayı = dizi (); foreach ($ dizi olarak $ _arr) ($ sayısı = $ _arr ["sayım"];) var_dump (maks ($ sayısı), min ($ sayısı));

eşdeğeri var mı yerleşik Bunun için işlev? (olasılık olmasa bile test yapmak)

/ ** * başka bir sütun üzerinden isteğe bağlı seçimle 2B diziden bir sütun alır * * @param $ dizi aArray alınacak * @param $ aColName alınacak sütun adı örn. "O_NAME" * @param $ aColTest (isteğe bağlı) testi çalıştıracak sütunun adı, ör. "O_ID" * @param $ aTest (isteğe bağlı) test için dize ex. "> = 10", "==" ". $ Toto." "" * @Return 1D dizisi yalnızca ayıklanan sütunla * @access public * / function ExtractColFromArray ($ aArray, $ aColName, $ aColTest = "", $ aTest = "") ($ mRes = dizi (); foreach ($ aArray as $ satır) (if (($ aColTest == "") || (eval ("dönüş". $ satır [$ aColTest]. $ aTest) . ";"))) ($ mRes = $ satır [$ aColName];)) return $ mRes;) // ExtractColFromArray

anahtarı al (9)

Bunun gibi bir dizim var:

Dizi (0 => dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200",), 1 => dizi ("id" => "20110209172747", "Tarih" => "2011-02-09", "Ağırlık" => "180",), 2 => dizi ("id" => "20110209172827", "Tarih" => "2011- 02-09 "," Ağırlık "=>" 175 ",), 3 => dizi (" id "=>" 20110211204433 "," Tarih "=>" 2011-02-11 "," Ağırlık "=>" 195 ",),)

Minimum ve maksimum ağırlık değerlerini çıkarmam gerekiyor. Bu örnekte

$ min_değer = 175

$ maks_değer = 200

Bunun nasıl yapılacağına dair herhangi bir yardım? Teşekkürler!

Yanıtlar

PHP 5.5+ kullanan kişiler için bu, array_column ile çok daha kolay yapılabilir. Bu çirkin diziler için gerekli değil.

Maksimum değer nasıl elde edilir:

$ en yüksek_ağırlık = max (array_column ($ ayrıntılar, "Ağırlık"));

Minimum değer nasıl elde edilir

$ low_weight = min (array_column ($ ayrıntılar, "Ağırlık"));

Seçenek 1. İlk olarak, şu sayıları elde etmek için diziyi eşleştirirsiniz (tam bilgi değil):

$ sayılar = dizi_sütun ($ dizi, "ağırlık")

Sonra min ve max elde edersiniz:

$ dak = dak ($ ​​sayılar); $ maks = maks ($ sayılar);

Seçenek 2. (Yalnızca PHP 5.5'iniz yoksa.) Seçenek 1 ile aynı, ancak değerleri dışarı çıkarmak için array_map kullanın:

$ sayılar = dizi_map (işlev ($ ayrıntılar) (dönüş $ ayrıntılar ["Ağırlık"];), $ dizi);

Seçenek 3.

Seçenek 4. Yalnızca minimum VEYA maksimuma ihtiyacınız varsa, array_reduce () daha hızlı olabilir:

$ dak = array_reduce ($ dizi, işlev ($ dak, $ ayrıntılar) (dönüş min ($ dak, $ ayrıntılar ["ağırlık"]);), PHP_INT_MAX);

Bu daha fazla min () s yapar, ancak bunlar çok hızlıdır. PHP_INT_MAX maksimumda başlamalı ve aşağı ve aşağı gitmelidir. Aynısını $ max için de yapabilirsiniz, ancak 0 veya -PHP_INT_MAX ile başlayacaksınız.

dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200",), 1 => dizi ("id" => "20110209172747", " Tarih "=>" 2011-02-09 "," Ağırlık "=>" 180 ",), 2 => dizi (" id "=>" 20110209172827 "," Tarih "=>" 2011-02-09 ", "Ağırlık" => "175",), 3 => dizi ("id" => "20110211204433", "Tarih" => "2011-02-11", "Ağırlık" => "195",),) ; foreach ($ anahtar => $ değer olarak $ dizisi) ($ sonuç [$ anahtar] = $ değer ["Ağırlık"];) $ min = min ($ sonuç); $ maks = maks ($ sonuç); echo "Minnumum sayıdaki dizi:". $ min. "
"; echo" Maksimum sayıdaki dizi: ". $ max."
"; ?>

Foreach ($ dizisi as $ k => $ v) ($ tArray [$ k] = $ v ["Weight"];) $ min_value = min ($ tArray); $ max_value = max ($ tArray);

php'de bir sıralama dizisi kullanmadan bir dizideki maksimum ve minimum beş sayıyı hızlı bir şekilde yazdırın: -

En yüksek yedi sıcaklığın listesi: - "; $ m = maks ($ dizi); for ($ i = 1; $ i<7 ; $i++) { $m[$i]=max(array_diff($array,$m)); } foreach ($m as $key =>$ değeri) (echo "". $ değeri;) echo "
Yedi en düşük sıcaklığın listesi: "; $ mi = min ($ dizisi); for ($ i = 1; $ i<7 ; $i++) { $mi[$i]=min(array_diff($array,$mi)); } foreach ($mi as $key =>$ değeri) (echo "". $ değeri;)?>

Min veya max gibi önceden tanımlanmış bir işlevi kullanmadan nasıl olur?

$ dizi =; $ değer = $ dizi; $ n = say ($ dizi); için ($ ben = 1; $ ben<$n;$i++) { if($val<$arr[$i]) { $val = $val; } else { $val = $arr[$i]; } } print($val);

Yukarıdaki çözümlerin her ikisinin de diziler (birincisi ve ikincisi dizi) şeklinde ek depolama kullandığını ve ardından "ekstra depolama" dizisini kullanarak minimum ve maksimum değerleri bulduğunuzu belirtmek ilginçtir. Bu, gerçek programlama dünyasında kabul edilebilir olsa da ("ekstra" depolama hakkında iki bit kim verir?), Programlama 101'de size bir "C" verir.

Min ve max bulma sorunu, sadece iki ekstra bellek yuvası ile kolayca çözülebilir

$ first = intval ($ input ["Ağırlık"]); $ dak = $ ilk; $ max = $ ilk; foreach ($ veri olarak $ girişi) ($ ağırlık = intval ($ veri ["Ağırlık"]); if ($ ağırlık<= $min) { $min = $weight ; } if($weight >$ max) ($ max = $ ağırlık;)) echo "min = $min ve max = $ max \ n";

$ num = dizi (0 => dizi ("id" => "20110209172713", "Tarih" => "2011-02-09", "Ağırlık" => "200"), 1 => dizi ("id" => "20110209172747", "Tarih" => "2011-02-09", "Ağırlık" => "180"), 2 => dizi ("id" => "20110209172827", "Tarih" => "2011 -02-09 "," Ağırlık "=>" 175 "), 3 => dizi (" id "=>" 20110211204433 "," Tarih "=>" 2011-02-11 "," Ağırlık "=>" 195 ")); foreach ($ num as $ anahtar => $ değer) ($ ağırlık = $ değer ["Ağırlık"];) echo max ($ ağırlık); yankı min ($ ağırlık);

İşte bazı yollar javascript kullanarak diziden öğeyi kaldır .

Açıklanan tüm yöntemler orijinal diziyi değiştirmeyin ve bunun yerine yeni bir tane oluşturun.

Elemanın indeksini biliyorsanız

Diyelim ki bir diziniz var ve i konumundaki öğeyi kaldırmak istiyorsunuz.

Bir yol, dilim () kullanmaktır:

const öğeler = ["a", "b", "c", "d", "e", "f"] const i = 3 const filteredItems = item.slice (0, i-1) .concat (items. dilim (i, öğeler.uzunluk)) console.log (filteredItems)

dilim (), aldığı indekslerle yeni bir dizi oluşturur. Basitçe yeni bir dizi oluşturuyoruz - baştan silmek istediğimiz dizine kadar ve sildiğimiz diziden sonraki ilk konumdan dizinin sonuna kadar başka bir diziyi birleştiriyoruz.

anlamını biliyorsan

Bu durumda, iyi bir seçenek, daha fazlasını sunan filtre () kullanmaktır. bildirimsel bir yaklaşım:

const öğeler = ["a", "b", "c", "d", "e", "f"] const valueToRemove = "c" const filteredItems = item.filter (item => item! == valueToRemove) konsol.log (filtrelenmişÖğeler)

Bu, ES6 ok işlevlerini kullanır. Eski tarayıcıları desteklemek için geleneksel özellikleri kullanabilirsiniz:

const öğeler = ["a", "b", "c", "d", "e", "f"] const valueToRemove = "c" const filteredItems = öğeler.filter (işlev (öğe) (öğe iade! = = valueToRemove)) console.log (filteredItems)

veya eski tarayıcılar için daha sindirilebilir hale getirmek için Babel'i kullanabilir ve ES6 kodunuzu tekrar ES5'e dönüştürebilirsiniz, ancak kodunuza modern JavaScript yazabilirsiniz.

Birden çok öğeyi kaldırma

Bir öğe yerine birçok öğeyi silmek isterseniz ne olur?

En basit çözümü bulalım.

dizine göre

Basitçe bir işlev oluşturabilir ve öğeleri sırayla kaldırabilirsiniz:

const item = ["a", "b", "c", "d", "e", "f"] const removeItem = (items, i) => item.slice (0, i-1) .concat (items.slice (i, item.length)) let filteredItems = removeItem (items, 3) filteredItems = removeItem (filteredItems, 5) // ["a", "b", "c", "d"] konsol. günlük (filtrelenmişÖğeler)

değere göre

Geri arama işlevinin içine dahil edilmeyi arayabilirsiniz:

const öğeler = ["a", "b", "c", "d", "e", "f"] const değerleriToRemove = ["c", "d"] const filteredItems = item.filter (item => !valueToRemove.includes (item)) // ["a", "b", "e", "f"] console.log (filteredItems)

Orijinal diziyi mutasyona uğratmaktan kaçının

splice () (dilim () ile karıştırılmamalıdır) orijinal diziyi değiştirir ve bundan kaçınılmalıdır.

Diziler, bilgi depolamanın uygun yapılandırılmış yollarından biridir. Böyle bir dizinin her elemanının kendi yeri, kendi anahtarı ve değeri vardır. Dizilerin içeriği, sayıların tabanı, adlar veya basit sayısal değerler gibi farklı olabilir. Sayıdan bahsetmişken, örneğin maksimum veya minimum değeri görüntülemek gibi çeşitli görevlerle karşılaşabiliriz. Bugün bunun farklı programlama dillerinde nasıl çözüldüğünden bahsedeceğiz.

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

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

$ dizim = dizi (22, 24, 37, 74, 23, 2, 10);

ve bir öncekiyle aynı, ancak anahtarlarla:

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

Bu dizinin maksimum ve minimum değerlerini göstermeye çalışalım. Bunu yapmak için standart işlevleri kullanacağız “ maksimum" ve " dk" sırasıyla:

Yankı max ($ my_array); // 74 echo min ($ my_array) yazdır; // Çıktı 2

İkinci diziye daha yakından bakarsak, sonuç olarak maksimum veya minimum değerlerin anahtarını alabiliriz.

Bir dizi örneği

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

Bunun gibi görünecek:

$ maks = dizi_anahtarları ($ dizim, maks ($ dizim)); $ maks = $ maks; // Maksimum değer anahtarı $ min = dizi_anahtarları ($ dizim, min ($ dizim)); $ dak = $ dak; // Minimum değer tuşu echo $ max; // Maksimum değerin sonucunu göster

Buna göre, maksimum değer için anahtar "4" ve minimum değer "6" dır.

PHP'de çok boyutlu bir dizinin en büyük ve en küçük değerini bulma

Çok boyutlu diziler iç içe geçmeleriyle ayırt edilirler. Örneğin, iki boyutlu bir dizi, anahtarlar olmadan şöyle görünür:

$ dizim = dizi (dizi (22, 24, 37), dizi (74, 23, 2), dizi (10));

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

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

Bu durumda, maksimum ve minimum değerleri bulmak biraz zor, ama aynı derecede gerçekçi.

İlk olarak, burada maksimum ve minimumu bulmak için diziyi tek boyutlu hale getiriyoruz:

$ out_array = dizi (); foreach ($ alt_array olarak $ my_array) ($ out_array = array_merge ($ out_array, $ sub_array);)

Tasarım, yukarıdaki her iki seçenek için de çalışır. Ardından, tek boyutlu bir dizi örneğini izleyerek ihtiyacımız olan verileri görüntülüyoruz:

Yankı max ($ out_array); // 74 echo min ($ out_array) yazdır; // Çıktı 2

Bonus olarak, işte başka bir popüler iki boyutlu dizi örneği:

$ my_array = dizi (dizi ("id" => "1", "tarih" => "2018-03-19", "fiyat" => "5",), dizi ("id" => "2" , "date" => "2018-03-19", "price" => "50",), array ("id" => "3", "date" => "2018-03-19", " fiyat "=>" 25 ",));

Popülerlik derken içeriği değil, yapısının bir örneğini kastediyorum. Diyelim ki burada sadece "fiyat" tuşlarının maksimum ve minimum değerlerini yazdırmanız gerekiyor.

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

$ sayılar = dizi_sütun ($ dizim, "fiyat");

Yankı min ($ sayılar); // max 5 echo ($ sayı) yazdır; // Çıkış 50

Bu, PHP'deki dizilerle çalışmayı tamamlar. Aniden dizinizin yapısı farklıysa ve nasıl işleneceğini bilmiyorsanız - yorumlarda uygun soruyu sorun, size yardımcı olmaya çalışacağım.

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

PHP'den farklı olarak, JavaScript dizileri çok daha basittir ve basit bir tek boyutlu dizi şöyle görünür:

Var my_array =;

Burada herhangi bir endeks belirtilmemiştir. Bu dizideki maksimum ve minimum değerleri bulmak için basit fonksiyonlarımızdan iki tanesini yazacağız:

işlev arrayMax (dizi) (dönüş dizi.indirge (işlev (a, b) (dönüş Math.max (a, b);));) işlev diziMin (dizi) (dönüş dizi.indirge (işlev (a, b) ( dönüş Math.min (a, b);)));)

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

Uyarı (arrayMax (my_array)); // Çıktı 74 uyarısı (arrayMin (my_array)); // Çıktı 2

Bu durumda ekranda "2" ve "74" sayıları dizinin minimum ve maksimum değerleri olarak görüntülenecektir.

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

JavaScript'teki çok boyutlu diziler de aynı derecede basittir ve şöyle görünürler:

Var my_array = [,,];

Burada maksimum ve minimumu bulmaya çalışalım. Başlangıç ​​olarak, tanıdık şemamıza göre bu diziyi tek boyutlu olarak temsil edeceğimiz bir fonksiyon yazacağız:

Var out_array =; my_array.forEach (işlev (v) (Array.prototype.push.apply (out_array, v);));

Ve nesneyi kullanarak " Matematik"İhtiyacımız olan değerleri alıyoruz:

Var min = Math.min.apply (null, out_array); // 2 var max al = Math.max.apply (null, out_array); // 74 uyarı al (maks); // 74'ü ekranda göster

Aslında, nesne yerine " Matematik»Varyantta kullanılan fonksiyonlarımızı tek boyutlu bir dizi ile kullanabilirsiniz, ancak herhangi bir sorunun birkaç şekilde çözülebileceğini anlamanız için - burada biraz farklı bir çözüm verdim.

Eh, geleneğe göre - küçük bir bonus. Aşağıdaki yapıya sahip başka bir çok boyutlu diziyi düşünün:

Var my_array = [["Bir", "2018-03-19", 5], ["İki", "2018-03-19", 50], ["Üç", "2018-03-19", 25 ],];

Gördüğümüz gibi her dizideki sayısal değerler üçüncü sırada yer almaktadır. Biraz kod yazalım ve sadece bu verilerden karşılık gelen değerleri alalım:

Var min = + Sonsuz; var max = -Sonsuz; my_array.forEach (işlev (öğe) (eğer (+ öğe)< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >maks) (maks = + öğe; // Maksimum değer aranıyor))); uyarı (min + "" + maks); // Sonucu ekranda göster

Bu kadar. Projeye destek olmayı unutmayın. Önünüzde sizi birçok ilginç şey bekliyor!