Ev / Oyun konsolları / Min - En küçük değeri bulur. Min - Bir php dizisindeki en küçük minimum değeri bulur

Min - En küçük değeri bulur. Min - Bir php dizisindeki en küçük minimum değeri bulur

Diziler, bilgiyi 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, örneğin sayı tabanı, adlar veya basit sayısal değerler gibi farklı olabilir. Sayılardan bahsetmişken, maksimum veya minimum değeri çıkarmak gibi çeşitli görevlerle karşı karşıya kalabiliriz. 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ı bakımından farklılık gösterir. Biri anahtar içermeyen iki basit tek boyutlu diziyi düşünün:

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

ve bir öncekinin aynısı, ancak tuşlarıyla:

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

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

Echo max($my_array); // 74 yazdır echo min($my_array); // 2'yi yazdır

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

Örnek olarak bir dizi kullanma

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

şöyle görünecek:

$max = array_keys($my_dizi, max($my_dizi)); $max = $max;// Maksimum değer anahtarı $min = array_keys($my_array, min($my_array)); $dakika = $dakika; // Minimum değer anahtarı echo $max; // Maksimum değerin sonucunu yazdır

Buna göre maksimum değer anahtarı “4”, minimum değer ise “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 edilir. Örneğin, iki boyutlu bir dizi, anahtarlar olmadan şuna benzer:

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

Ve buna göre belirli tuşlarla:

$my_array = array(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ı zamanda mümkün.

Öncelikle 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 geçerlidir. Daha sonra tek boyutlu dizi örneğini takip ederek ihtiyacımız olan verileri görüntüleyeceğiz:

Yankı max($out_array); // 74 yazdır echo min($out_array); // 2'yi yazdır

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

$my_array = array(array("id" => "1", "tarih" => "2018-03-19", "fiyat" => "5",), array ("id" => "2" , "tarih" => "2018-03-19", "fiyat" => "50",), array ("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ğerlerinin çıktısını almanız gerekiyor.

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

$sayılar = array_column($dizim, "fiyat");

Echo min($sayılar); // 5 echo max($sayı); // 50'yi yazdır

Bu, PHP'deki dizilerle çalışmayı tamamlar. Eğer aniden dizinizin yapısı farklılaşırsa ve bunu 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, JavaScript'teki dizilerin türü çok daha basittir ve basit, tek boyutlu bir dizi şöyle görünecektir:

Var my_array = ;

Burada herhangi bir indeks belirtilmemiştir. Bu dizideki maksimum ve minimum değerleri bulmak için kendimize ait iki basit fonksiyon 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));

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

Alert(arrayMax(my_array)); // 74 alarmı yazdır(arrayMin(my_array)); // Yazdır 2

Bu durumda dizinin minimum ve maksimum değerleri olarak “2” ve “74” sayıları ekranda görünecektir.

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 benim_dizi = [ , , ];

Burada maksimum ve minimumu bulmaya çalışalım. Başlangıç ​​olarak, 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 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ın(max); // 74'ü ekrana yazdır

Aslında nesne yerine " Matematik"Versiyonda kullanılan fonksiyonlarımızı tek boyutlu bir diziyle kullanabilirsiniz, ancak herhangi bir problemin birkaç yolla çözülebileceğini anlamanız için - burada biraz farklı bir çözüm verdim.

Geleneğe göre küçük bir bonus. Aşağıdaki yapıya sahip başka bir çok boyutlu diziyi ele alalım:

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 sadece bu verilerden alalım:

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

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

anahtarı al (9)

Bu diziye sahibim:

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 => array ("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 var mı? Teşekkür ederim!

Cevaplar

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:

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

Minimum değer nasıl elde edilir

$en düşük_ağırlık = min(array_column($detaylar, "Ağırlık"));

Seçenek 1: Öncelikle bu sayıları (tüm bilgiyi değil) elde etmek için diziyi harmanlarsınız:

$sayılar = array_column($dizi, "ağırlık")

Sonra min ve max değerini alırsınız:

$min = dk($sayılar); $maks = azami($sayılar);

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

$sayılar = array_map(function($detaylar) ( return $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($dizi, function($min, $detaylar) ( return min($min, $detaylar["ağırlık"]); ), PHP_INT_MAX);

Bu min() s'den daha fazlasını yapar, ancak çok hızlıdırlar. PHP_INT_MAX maksimumdan başlamalı ve giderek azalmalı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 ($dizi as $anahtar => $değer) ( $sonuç[$anahtar] = $değer["Ağırlık"]; ) $min = min($sonuç); $maks = azami($sonuç); echo "Minimum sayıdaki dizi:".$min."
"; echo " Maksimum sayıdaki dizi: ".$max."
"; ?>

Foreach ($array as $k => $v) ( $tArray[$k] = $v["Ağırlık"]; ) $min_value = min($tArray); $max_value = max($tArray);

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

Yedi en yüksek 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 " ".$değer; ) 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) ( ​echo " ".$değer; ) ?>

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

$dizi = ; $val = $dizi; $n = sayım($dizi); 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 biçiminde ek depolama kullandığını (ilk olarak bunlardan biri ve ikincisi bir dizi) ve ardından "ekstra depolama" dizisini kullanarak minimum ve maksimum değerlerini bulduğunuzu belirtmek ilginçtir. Bu, programlamanın gerçek dünyasında kabul edilebilir olsa da ("ekstra" depolama hakkında kim iki bilgi verir ki?), Programlama 101'de size "C" verir.

Minimum ve maksimumu bulma sorunu yalnızca iki ek bellek yuvasıyla kolayca çözülebilir

$ilk = intval($input["Ağırlık"]); $min = $ilk; $maks = $ilk; foreach($input as $veri) ( $ağırlık = intval($veri["Ağırlık"]); if($ağırlık<= $min) { $min = $weight ; } if($weight >$maks) ( $maks = $ağırlık ; )) echo " min = $min ve maks = $maks \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 => array ("id" => "20110209172827", "Tarih" => "2011 - 02-09", "Ağırlık" => "175"), 3 => dizi ("id" => "20110211204433", "Tarih" => "2011-02-11", "Ağırlık" => "195 " ));

foreach($sayı as $anahtar => $değer) ( $ağırlık = $değer["Ağırlık"]; ) echo max($ağırlık); echo 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 yaratın.

Element indeksini biliyorsanız

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

Bunun bir yolu dilim() kullanmaktır:

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

dilim() aldığı indekslerle yeni bir dizi oluşturur. Başlangıçtan silmek istediğimiz dizine kadar yeni bir dizi oluşturuyoruz ve sildiğimiz diziyi takip eden ilk konumdan dizinin sonuna kadar başka bir diziyi birleştiriyoruz. Eğer anlamını biliyorsan Bu durumda, daha fazlasını sunan filter() işlevini kullanmak iyi bir seçenektir.

bildirimsel

yaklaşmak:

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

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

const items = ["a", "b", "c", "d", "e", "f"] const valueToRemove = "c" const filteredItems = items.filter(function(item) ( return item != = valueToRemove )) console.log(filteredItems)

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

Birden fazla öğeyi kaldırma

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

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

const items = ["a", "b", "c", "d", "e", "f"] const RemoveItem = (items, 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"] konsolu. log(filtrelenen öğeler)

Değere göre

Geri arama işlevine dahil edilmeyi arayabilirsiniz:

const items = ["a", "b", "c", "d", "e", "f"] const değerlerToRemove = ["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() (slice() ile karıştırılmamalıdır) orijinal diziyi değiştirir ve bundan kaçınılmalıdır.


Bu diziye sahibim:

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 => array ("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 var mı? Teşekkür ederim!


2018-05-01 03:06

Cevaplar:

Seçenek 1: Öncelikle bu sayıları (tüm bilgiyi değil) elde etmek için diziyi harmanlarsınız:

$sayılar = array_column($dizi, "ağırlık")

Sonra min ve max değerini alırsınız:

$min = dk($sayılar); $maks = azami($sayılar);

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

$sayılar = array_map(function($detaylar) ( return $detaylar["Ağırlık"]; ), $dizi);

Seçenek 3.

Seçenek 4: Min max'a ihtiyacınız varsa array_reduce() daha hızlı olabilir:

$min = array_reduce($dizi, function($min, $detaylar) ( return min($min, $detaylar["ağırlık"]); ), PHP_INT_MAX);

Bu min() s'den daha fazlasını yapar, ancak çok hızlıdırlar. PHP_INT_MAX maksimumdan başlamalı ve giderek azalmalı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["Ağırlık"]; ) $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 dizilere gerek yok.

Maksimum değer nasıl elde edilir:

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

Minimum değer nasıl elde edilir

$en düşük_ağırlık = min(array_column($detaylar, "Ağırlık"));


2018-01-24 11:04

Yukarıdaki çözümlerin her ikisinin de diziler biçiminde ek depolama kullandığını (ilk olarak bunlardan biri ve ikincisi bir dizi) ve ardından "ekstra depolama" dizisini kullanarak minimum ve maksimum değerlerini bulduğunuzu belirtmek ilginçtir. Bu, programlamanın gerçek dünyasında kabul edilebilir olsa da ("ekstra" depolama hakkında kim iki bilgi verir ki?), Programlama 101'de size "C" verir.

Minimum ve maksimumu bulma sorunu yalnızca iki ek bellek yuvasıyla kolayca çözülebilir

$ilk = intval($input["Ağırlık"]); $min = $ilk; $maks = $ilk; foreach($input as $veri) ( $ağırlık = intval($veri["Ağırlık"]); if($ağırlık<= $min) { $min = $weight ; } if($weight >$maks) ( $maks = $ağırlık ; )) echo " min = $min ve maks = $maks \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 => array ("id" => "20110209172827", "Tarih" => "2011 - 02-09", "Ağırlık" => "175"), 3 => dizi ("id" => "20110211204433", "Tarih" => "2011-02-11", "Ağırlık" => "195 " ));


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 ($dizi as $anahtar => $değer) ( $sonuç[$anahtar] = $değer["Ağırlık"]; ) $min = min($sonuç); $maks = azami($sonuç); echo "Minimum 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); çeşit($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;
$maksimumdeğer = 0;

foreach($count as $a=>$y)( echo "

".$a."=".$y; if($y>=$maxvalue)( $maxvalue = $y; if($a>$maxsize)( $maxsize = $a; ) ) echo " max = ".$maxsize;

(PHP 4, PHP 5, PHP 7)

dk — En küçük değeri bulur Tanım En küçük değeri bulur Yalnızca bir argüman aktarılırsa - bir sayı dizisi,

Yorum:

Farklı türdeki 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ıyla ( tamsayı) sanki 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 En küçük değeri bulur standart karşılaştırma kurallarına göre "en küçük" olarak kabul edilen parametrenin değerini döndürür. Birden fazla değer varsa farklı türler birbirine eşittir (örn. 0 Ve "ABC"), ardından ilki döndürülecektir.

Örnekler

Örnek #1 Kullanım örneği En küçük değeri bulur

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

// "Merhaba" dizisi 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
echo min(0, "merhaba"); // 0
echo min ("merhaba", 0); // Merhaba

// Burada -1'i karşılaştırıyoruz< 0, поэтому -1 является наименьшим значением
echo 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 birden fazla dizi soldan sağa doğru karşılaştırılır
// bu örnek için: 2 == 2, fakat 4< 5
$val = min (dizi(2, 4, 8), dizi(2, 5, 1)); // dizi(2, 4, 8)

// Bir dizi ve dizi olmayan bir dizi 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 ("dizge", dizi(2, 5, 7), 42); //sicim

// Eğer bir argüman NULL veya boolean ise diğerleriyle karşılaştırılacaktır
// YANLIŞ kuralını kullanarak< TRUE, учитывая остальные типы аргументов
// Verilen örnekte -10 ve 10 DOĞRU olarak değerlendiriliyor
$değer = dk (- 10, YANLIŞ, 10); // YANLIŞ
$değer = dk (- 10, NULL, 10); // HÜKÜMSÜZ

// diğer taraftan 0, YANLIŞ olarak kabul edilir, yani DOĞRU'dan "küçüktür"
$değer = min(0, DOĞRU); // 0
?>

Bu formatta bir dizim var:

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

Var iyi yol"count"un minimum ve maksimum değerlerini alıyor musunuz? Bunu birden fazla döngü kullanarak yapabilirim, ancak daha iyi bir yol olabileceğini düşündüm.

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

GÖRÜNTÜYÜ BAŞLAT

min() ve max() kullanmanın doğru cevabı vermesinin nedeni, dizilerin tamsayılara tür ataması yapmasıdır, bu tanımsız bir davranıştır:

Tamsayıya dönüştürme davranışı diğer türler için tanımlanmamıştır. Uyarı yapılmadan değişebileceği için gözlemlenen davranışlara güvenmeyin.

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

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

Soruna çevrildiğinde OP, neden doğrudan min() ve max() kullanımının doğru sonucu verdiğini gösteriyor. Dizinin ilk elemanları id'dir, dolayısıyla min() ve max() ilk olarak bunları karşılaştırır, bu da doğru sonuca götürür, çünkü en düşük kimlik en düşük sayıya sahip olandır ve en yüksek kimlik ise birdir. en yüksek sayıya sahip olanıdır.

DÜZENLEMEYİ SONLANDIR

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

$a = array(array("id" => 117, "name" => "Ağ İletişimi", "count" => 16), array("id" => 188, "name" => "FTP", " count" => 23), array("id" => 189, "name" => "Internet", "count" => 48)); $min = PHP_INT_MAX; $maks = 0; foreach ($a as $i) ( $min = min($min, $i["count"]); $max = max($max, $i["count"]); )

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

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

  1. Hem $min hem de max sayısını sayarak ilk öğeyi alın
  2. geri kalanı yineleyin, sayımı her $min ve $max ile karşılaştırın, eğer daha az/daha büyükse yeni bir sayım değeri atayın

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

Bunu güncellemek, göz ardı ettiğim için işe yaramıyor. Man sayfası örneği yanıltıcıdır ve örnek max kullanılarak doğru sonucu verir, ancak bu sadece bir tesadüf.

Görünüşe göre 2B dizide max() işlevini kullanamazsınız. Her dizinin max() yerine (birkaç yanıtta belirtildiği gibi) en büyük diziyi döndürür.

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

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

/** * 2B diziden, başka bir sütun üzerinde isteğe bağlı seçimle bir sütunu alır * * @param $ aArray'den alınacak * @param $ aColName alınacak sütunun adı, ör. "O_NAME" * @param $aColTest (isteğe bağlı) testi çalıştırmak için sütun adı, ör. "O_ID" * @param $aTest (isteğe bağlı) test örneği için dize. ">=10", "== "". $Toto. "" " * @return Yalnızca sütunu çıkarılmış 1 boyutlu dizi * @access public * / function extractColFromArray ($aArray, $aColName, $aColTest = "", $ aTest = "") ( $mRes = dizi()); foreach ($aArray as $satır) ( if (($aColTest == "") || (eval("return". $row[$aColTest). $ aTest. ";"))) ( $ mRes = $ satır [ $ aColName ]; )) return $ mRes ) // extractColFromArray