Menü
Bedava
Kayıt
ev  /  İnternet/ php bir dizideki en küçük değeri bulur. PHP 2B ilişkisel dizide minimum ve maksimum değerleri alın

Php dizideki en küçük değeri bulur. PHP 2B ilişkisel dizide minimum ve maksimum değerleri alın

(PHP 4, PHP 5, PHP 7)

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

Tanım

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

Yorum:

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ı ( tamsayı) eşitmiş gibi 0 , ancak birkaç satır ( sicim) alfabetik olarak karşılaştırılacaktır. Dönüş değeri, dönüştürme 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 birbirine eşitse (örn. 0 ve "ABC"), ardından ilki döndürülür.

örnekler

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

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

// "merhaba" dizgisi, 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ı min(0, "merhaba"); // 0
yankı min("merhaba" , 0 ); // merhaba

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

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

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

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

// Bir bağımsız değişken NULL veya boole ise, diğerleriyle 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 ); // yanlış
$val = min(- 10 , NULL , 10 ); // HÜKÜMSÜZ

// Öte yandan, 0 YANLIŞ olarak kabul edilir, yani "DOĞRU"dan "küçüktür"
$değer = min(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", "Weight" => "175",), 3 => array ("id" => "20110211204433", "Date" => "2011-02-11", "Weight" => "195 ",))

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

$min_değer = 175

$max_value = 200

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


2018-05-01 03:06

Yanıtlar:

Seçenek 1: Önce bu sayıları (ve tüm bilgileri değil) almak için diziyi eşlersiniz:

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

Sonra min ve maks elde edersiniz:

$dak = dak($sayılar); $max = max($sayılar);

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

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

Seçenek 3.

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

$min = array_reduce($array, function($min, $details) ( dönüş min($min, $detaylar["ağırlık"]); ), PHP_INT_MAX);

min() s'den daha fazlasını yapar, ancak çok hızlıdırlar. PHP_INT_MAX maksimumda başlamalı ve alçalmalı ve alçalmalıdır. Aynısını $max için de yapabilirsiniz, ancak 0 veya -PHP_INT_MAX ile başlayacaksınız.


2018-05-01 03:11

Foreach ($array 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.O çirkin dizilere gerek yok.

Maksimum değer nasıl elde edilir:

$highest_weight = max(dizi_sütun($detaylar, "Ağırlık"));

Minimum değer nasıl elde edilir

$lowest_weight = min(dizi_sütun($detaylar, "Ağırlık"));


2018-01-24 11:04

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

Minimum ve maksimum bulma sorunu, yalnızca iki ekstra bellek yuvasıyla kolayca çözülebilir

$ilk = intval($input["Ağırlık"]); $dk = $ilk; $maks = $ilk ; foreach($input as $data) ( $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 and 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 $key => $val) ( $weight = $val["Weight"]; ) echo max($weight); 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 ($array as $key => $value) ( ​​$result[$key] = $value["Weight"]; ) $min = min($result); $max = max($sonuç); echo "Minnumum sayıdaki dizi:".$min."
"; echo " Maksimum sayıdaki dizi:".$maks."
"; ?>


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, ilişkili diziyi döndürür print_r($count); $maksimumboyut = 0; $maksdeğer = 0; foreach($count as $a=>$y)( echo "
".$a."=".$y; if($y>=$maxvalue)( $maxvalue = $y; if($a>$maxsize)( $maxsize = $a; ) ) ) echo "
max = ".$maxsize;

anahtar(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", "Weight" => "175",), 3 => array ("id" => "20110211204433", "Date" => "2011-02-11", "Weight" => "195 ",))

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

$min_değer = 175

$max_value = 200

Bunun nasıl yapılacağına dair herhangi bir yardım var 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 dizilere gerek yok.

Maksimum değer nasıl elde edilir:

$highest_weight = max(dizi_sütun($detaylar, "Ağırlık"));

Minimum değer nasıl elde edilir

$lowest_weight = min(dizi_sütun($detaylar, "Ağırlık"));

Seçenek 1: Önce bu sayıları (ve tüm bilgileri değil) almak için diziyi eşlersiniz:

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

Sonra min ve maks elde edersiniz:

$dak = dak($sayılar); $max = max($sayılar);

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

$sayılar = dizi_haritası(işlev($detaylar) ( dönüş $detaylar["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:

$min = array_reduce($array, function($min, $details) ( dönüş min($min, $detaylar["ağırlık"]); ), PHP_INT_MAX);

Bu, daha fazla min() s yapar, ancak çok hızlıdırlar. PHP_INT_MAX maksimumda başlamalı ve alçalmalı ve alçalmalıdır. 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 ($array as $key => $value) ( ​​$result[$key] = $value["Weight"]; ) $min = min($result); $max = max($sonuç); echo "Minnumum sayıdaki dizi:".$min."
"; echo " Maksimum sayıdaki dizi:".$maks."
"; ?>

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

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

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

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

$ dizi = ; $val = $arr; $n = sayı($arr); for($i=1;$i<$n;$i++) { if($val<$arr[$i]) { $val = $val; } else { $val = $arr[$i]; } } print($val);

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

Minimum ve maksimum bulma sorunu, yalnızca iki ekstra bellek yuvasıyla kolayca çözülebilir

$ilk = intval($input["Ağırlık"]); $dk = $ilk; $maks = $ilk ; foreach($input as $data) ( $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 and 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 $key => $val) ( $weight = $val["Weight"]; ) echo max($weight); yankı min($ağırlık);

İşte bazı yollar javascript ile diziden eleman kaldırmak .

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

Eleman indeksini biliyorsanız

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

Bunun bir yolu, slice() işlevini kullanmaktır:

const öğeler = ["a", "b", "c", "d", "e", "f"] const i = 3 const filtrelenmişÖğeler = öğeler.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 yaratıyoruz - başından kaldırmak istediğimiz dizine kadar ve kaldırdığımız dizini takip eden ilk konumdan dizinin sonuna kadar başka bir diziyi birleştiriyoruz.

eğer anlamını biliyorsan

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

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

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) ( iade öğesi != = valueToRemove )) console.log(filteredItems)

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

Birden çok öğeyi silme

Ya bir öğe yerine birçok öğeyi kaldırmak isterseniz?

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

dizine göre

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

const itemler = ["a", "b", "c", "d", "e", "f"] const removeItem = (itemler, i) => items.slice(0, i-1).concat (items.slice(i, items.length)) let filteredItems = removeItem(items, 3) filteredItems = removeItem(filteredItems, 5) //["a", "b", "c", "d"] konsol. log(filteredItems)

değere göre

Bir geri arama işlevinin içinde bir içerme arayabilirsiniz:

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

Orijinal diziyi değiştirmekten kaçının

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

Bu formatta bir dizim var:

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

"Count" un minimum ve max değerlerini almanın iyi bir yolu var mı? Bunu birden fazla döngü kullanarak yapabilirdim ama 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 veri dizilerini (array) anlamazlar. Bu işlevler yalnızca skaler dizi öğeleri için çalışır.

BAŞLANGIÇ GÖRSELİ

min() ve max() kullanmanın doğru cevabı vermesinin nedeni, tanımsız davranış olan tamsayılara tip atama dizileridir:

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

Type-casting ile ilgili yukarıdaki ifadem yanlıştı. Aslında min() ve max() diziler üzerinde çalışır, ancak OP'nin onların çalışmasına ihtiyaç duyduğu şekilde çalışmaz. Min() ve max() birden çok diziyle veya bir dizi dizi öğesiyle kullanıldığında, öğeler soldan sağa doğru öğe öğe karşılaştırılır:

$val = min(dizi(2, 4, 8), dizi(2, 5, 1)); // dizi(2, 4, 8) /* * birinci eleman ile birinci eleman: 2 == 2 * ikinci eleman ile ikinci eleman: 4< 5 * first array is considered the min and is returned */

Soruna çevrilen OP, min() ve max() kullanımının neden doğrudan doğru sonucu verdiğini gösteriyor. Dizinin ilk öğeleri id'dir, bu nedenle önce min() ve max() bunları karşılaştırır, bu arada bu doğru sonuca götürür çünkü en düşük id, en düşük sayıya sahip olandır ve en yüksek id, id'ye sahip olandır. en yüksek sayım sayısı.

DÜZENLEMEYİ SONLANDIR

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

$a = array("id" => 117, "name" => "Network", "count" => 16), array("id" => 188, "name" => "FTP", " count" => 23), array("id" => 189, "name" => "İnternet", "count" => 48)); $dk = 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 sayısını sayarak ilk elemanı alın
  2. gerisini yineleyin, sayacı her $min ve $max ile karşılaştırın, daha az/daha büyükse, yeni sayım değeri atayın

Max / min işlevlerini, her dizinin maksimum / minimumunu içeren bir dizi döndürecekleri için kullanabilirsiniz. Örneğiniz max için array(189, "Networking ", 48) döndürmelidir. Daha sonra o diziden puanı alabilirsiniz.

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

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

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

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

/*** Başka bir sütun üzerinde isteğe bağlı seçimle 2B diziden bir sütun alın * * @param $ aArray alınacak * @param $ aColName alınacak sütunun adı örn. "O_NAME" * @param $ aColTest (İsteğe bağlı) Testin çalıştırılacağı sütunun adı, örn. "O_ID" * @param $aTest (isteğe bağlı) örn. ">=10", "== "".$Toto. """ * @return 1B dizisi, yeni çıkarılan sütunla * @access public * / function extractColFromArray($aArray, $aColName, $aColTest = "", $aTest = "") ($mRes = array(); foreach($aArray as $row)( if (($aColTest == "") || (eval("return".$row[$aColTest].$aTest. ";"))) ( $mRes = $row[$aColName]; ) ) return $mRes; ) // extractColFromArray

Diziler, bilgi depolamanın uygun yapılandırılmış yollarından biridir. Böyle bir dizinin her elemanının yeri, anahtarı ve değeri vardır. Dizilerin içerikleri, sayıların tabanı, adlar veya basit sayısal değerler gibi farklı olabilir. Bir sayı hakkında konuşurken, maksimum veya minimum değeri türetmek gibi çeşitli görevlerle karşılaşabiliriz. Bugün farklı programlama dillerinde bunun 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 dizi düşünün:

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

ve bir öncekiyle aynı, ancak tuşlarla:

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

Bu dizinin maksimum ve minimum değerini göstermeye çalışalım. Bunu yapmak için standart işlevleri kullanıyoruz " maks." ve " dakika" sırasıyla:

echo max($my_array); // Çıktı 74 min. yankı($my_array); // Çıkış 2

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

Bir dizi örneğinde

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

Bunun gibi görünecek:

$max = array_keys($my_array, max($my_array)); $max = $max;// Maksimum değer anahtarı $min = array_keys($my_array, min($my_array)); $dk = $dk; // Minimum değerin anahtarı echo $max; // Maksimum değerin sonucunu çıkar

Buna göre maksimum değerin anahtarı “4”, minimum değerin anahtarı “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çmelerinde farklılık gösterir. Örneğin, iki boyutlu bir dizi, anahtarlar olmadan şöyle görünür:

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

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

$my_array = 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 bir o kadar da gerçek.

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

$out_array = dizi(); foreach($my_array as $sub_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östereceğiz:

yankı maks($out_array); // Çıktı 74 yankı min($out_array); // Çıkış 2

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

$my_array = array(array("id" => "1", "date" => "2018-03-19", "fiyat" => "5",), dizi ("id" => "2" , "tarih" => "2018-03-19", "fiyat" => "50",), dizi("id" => "3", "tarih" => "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 göstermeniz gerekiyor.

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

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

yankı min($sayılar); // Çıktı 5 echo max($sayılar); // Çıktı 50

Bu, PHP'deki dizilerle çalışmayı tamamlar. Aniden dizinizin yapısı farklıysa ve onu nasıl işleyeceğinizi 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 diziler, JavaScript'te çok daha basittir ve basit bir tek boyutlu dizi şöyle görünür:

var my_array = ;

Dizinler burada belirtilmez. Bu dizideki maksimum ve minimum değeri bulmak için iki basit fonksiyonumuzu yazacağız:

function arrayMax(array) ( return array.reduce(function(a, b) ( return Math.max(a, b); )); ) function arrayMin(array) ( return array.reduce(function(a, b)) ( Math.min(a, b); )); ) döndürür

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

Alert(arrayMax(my_array)); // 74 uyarısını görüntüle(diziMin(my_array)); // Çıkış 2

Bu durumda dizinin minimum ve maksimum değerleri olarak "2" ve "74" sayıları 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 dizim = [ , , ];

Burada maksimum ve minimumu bulmaya çalışalım. Başlamak için, bize zaten aşina olduğumuz şemaya göre, bu diziyi tek boyutlu olarak temsil edeceğimiz bir fonksiyon yazacağız:

var out_array = ; my_array.forEach(function(v) ( Array.prototype.push.apply(out_array, v); ));

Ve nesne ile Matematik» ihtiyacımız olan değerleri alın:

Varmin = Math.min.apply(null, out_array); // 2 var maks elde et = Math.max.apply(null, out_array); // 74 uyarı al(maks); // 74'ü Ekranda Göster

Aslında, nesne yerine " Matematik"Tek boyutlu dizi sürümünde kullanılan işlevlerimizi kullanabilirsiniz, ancak herhangi bir sorunun birkaç şekilde çözülebileceğini anlamanız için - burada biraz farklı bir çözüm verdim.

Her zamanki gibi küçük bir bonus. Aşağıdaki yapıya sahip başka bir çok boyutlu dizi 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 alıyor. Biraz kod yazalım ve karşılık gelen değerleri yalnızca bu verilerden alalım:

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

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