Bahay / Mga game console / Min - Hinahanap ang pinakamaliit na halaga. Min - Hinahanap ang pinakamaliit na halaga Pinakamababang halaga sa isang php array

Min - Hinahanap ang pinakamaliit na halaga. Min - Hinahanap ang pinakamaliit na halaga Pinakamababang halaga sa isang php array

Ang mga array ay isa sa mga maginhawang structured na paraan upang mag-imbak ng impormasyon. Ang bawat elemento ng naturang array ay may sariling lugar, sariling susi at halaga. Maaaring iba ang nilalaman ng mga array, gaya ng, halimbawa, isang base ng mga numero, pangalan o simpleng numeric value. Sa pagsasalita tungkol sa mga numero, maaari tayong humarap sa iba't ibang uri ng mga gawain, halimbawa, pagbabawas ng maximum o minimum na halaga. Ngayon ay pag-uusapan natin kung paano ito malulutas sa iba't ibang mga programming language.

Paghahanap ng pinakamalaki at pinakamaliit na halaga ng isang one-dimensional na array sa PHP

Ang lahat ng mga array ay naiiba sa kanilang istraktura. Isaalang-alang ang dalawang simpleng isang-dimensional na array, ang isa ay hindi naglalaman ng mga susi:

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

at isang kapareho sa nauna, ngunit may mga susi:

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

Subukan nating ipakita ang maximum at minimum na halaga ng array na ito. Upang gawin ito gagamitin namin ang mga karaniwang pag-andar " max"At" min" ayon sa pagkakabanggit:

Echo max($my_array); // Print 74 echo min ($my_array); // Print 2

Kung titingnan natin ang pangalawang hanay nang mas detalyado, pagkatapos ay bilang isang resulta maaari nating makuha ang susi ng maximum o minimum na mga halaga.

Paggamit ng array bilang isang halimbawa

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

magiging ganito ang hitsura:

$max = array_keys ($my_array, max ($my_array)); $max = $max;// Maximum value key $min = array_keys($my_array, min ($my_array)); $min = $min; // Minimum value key echo $max; // I-print ang resulta ng maximum na halaga

Alinsunod dito, ang maximum na value key ay "4", at ang minimum na value ay "6".

Paghahanap ng pinakamalaki at pinakamaliit na halaga ng isang multidimensional array sa PHP

Ang mga multidimensional na array ay nakikilala sa pamamagitan ng kanilang nesting. Halimbawa, magiging ganito ang hitsura ng isang two-dimensional array nang walang mga susi:

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

At, nang naaayon, na may ilang mga susi:

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

Sa kasong ito, ang paghahanap ng maximum at minimum na mga halaga ay medyo mahirap, ngunit posible rin.

Una, upang mahanap ang maximum at minimum dito, binabago namin ang array sa isang one-dimensional:

$out_array = array(); foreach($my_array bilang $sub_array) ($out_array = array_merge($out_array, $sub_array); )

Gumagana ang disenyo para sa parehong mga opsyon sa itaas. At pagkatapos, kasunod ng halimbawa ng isang one-dimensional na array, ipapakita namin ang data na kailangan namin:

Echo max($out_array); // Print 74 echo min ($out_array); // Print 2

Bilang isang maliit na bonus, magbibigay ako ng isang halimbawa ng isa pang sikat na two-dimensional array:

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

Sa pamamagitan ng katanyagan hindi ko ibig sabihin ang nilalaman, ngunit isang halimbawa ng istraktura nito. Sabihin nating dito kailangan mong i-output ang maximum at minimum na mga halaga ng mga key na "presyo" lamang.

Ang unang bagay na kailangan mo sa kasong ito ay upang makakuha bagong hanay lamang sa data na ito:

$numbers = array_column($my_array, "presyo");

Echo min($numbers); // Print 5 echo max($numbers); // Print 50

Kinukumpleto nito ang gawain sa mga array sa PHP. Kung biglang naiiba ang istraktura ng iyong array at hindi mo alam kung paano iproseso ito, tanungin ang naaangkop na tanong sa mga komento, susubukan kong tulungan ka.

Paghahanap ng pinakamalaki at pinakamaliit na halaga ng isang one-dimensional na array sa JavaScript

Hindi tulad ng PHP, ang uri ng mga array sa JavaScript ay mas simple, at ang isang simpleng one-dimensional array ay magiging ganito:

Var my_array = ;

Walang mga index na ipinahiwatig dito. Upang mahanap ang maximum at minimum na mga halaga sa array na ito, magsusulat kami ng dalawang simpleng pag-andar ng aming sarili:

Function arrayMax(array) ( return array.reduce(function(a, b) ( return Math.max(a, b); )); ) function arrayMin(array) ( return array.reduce(function(a, b) ( ibalik ang Math.min(a, b));

na ginagamit upang mahanap ang mga halaga na kailangan natin. Ang paggamit ay simple din:

Alert(arrayMax(my_array)); // Print 74 alert(arrayMin(my_array)); // Print 2

Sa kasong ito, ang mga numerong "2" at "74" ay ipapakita sa screen bilang ang minimum at maximum na mga halaga ng array.

Paghahanap ng pinakamalaki at pinakamaliit na halaga ng isang multidimensional na array sa JavaScript

Ang mga multidimensional na array sa JavaScript ay kasing simple lang, at ganito ang hitsura nila:

Var my_array = [ , , ];

Subukan nating hanapin ang maximum at minimum dito. Upang magsimula, magsusulat kami ng isang function kung saan, ayon sa pamamaraan na pamilyar na kami, ire-represent namin ang array na ito bilang isang-dimensional:

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

At gamit ang bagay na " Math"nakukuha namin ang mga halaga na kailangan namin:

Var min = Math.min.apply(null, out_array); // Kumuha ng 2 var max = Math.max.apply(null, out_array); // Kumuha ng 74 alerto (max); // Print 74 sa screen

Sa katunayan, sa halip na ang bagay " Math"Maaari mong gamitin ang aming mga function na ginamit sa bersyon na may isang isang-dimensional na array, ngunit upang maunawaan mo na ang anumang problema ay maaaring malutas sa maraming paraan - dito ay nagbigay ako ng isang bahagyang naiibang solusyon.

Well, ayon sa tradisyon - isang maliit na bonus. Isaalang-alang natin ang isa pang multidimensional array na may sumusunod na istraktura:

Var my_array = [["Isa", "2018-03-19", 5], ["Dalawa", "2018-03-19", 50], ["Tatlo", "2018-03-19", 25 ], ];

Tulad ng nakikita natin, ang mga numerong halaga sa bawat hanay ay nasa ikatlong lugar. Sumulat tayo ng ilang code at kunin ang mga katumbas na halaga mula lamang sa data na ito:

Var min = +Infinity; var max = -Infinity; my_array.forEach(function(item) ( if(+item< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >max) ( max =+ item; // Naghahanap ng pinakamataas na halaga ) )); alerto(min+" "+max); // Ipakita ang resulta sa screen

Iyon lang. Huwag kalimutang suportahan ang proyekto. Maraming mga kawili-wiling bagay ang naghihintay sa iyo!

kumuha ng susi (9)

Mayroon akong ganitong array:

Array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200", 1 => array ("id" => "20110209172747", "Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011- 02-09", "Timbang" => "175", 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195 ",),)

Kailangan kong kunin ang pinakamababa at pinakamataas na halaga ng timbang. Sa halimbawang ito

$min_value = 175

$max_value = 200

Anumang tulong sa kung paano gawin ito? Salamat!

Mga sagot

Para sa mga taong gumagamit ng PHP 5.5+ mas madali itong magagawa gamit ang array_column . Hindi na kailangan para sa mga pangit na array.

Paano makuha ang maximum na halaga:

$highest_weight = max(array_column($detalye, "Timbang"));

Paano makuha ang pinakamababang halaga

$lowest_weight = min(array_column($detalye, "Timbang"));

Opsyon 1: Una mong i-collate ang array para makuha ang mga numerong iyon (hindi ang buong impormasyon):

$numbers = array_column($array, "weight")

Pagkatapos ay makakakuha ka ng min at max:

$min = min($numero); $max = max($numero);

Pagpipilian 2. (Tanging kung wala kang PHP 5.5.) Pareho sa opsyon 1, ngunit para makuha ang mga halaga, gamitin ang array_map:

$numbers = array_map(function($details) ( return $details["Weight"]; ), $array);

Opsyon 3.

Opsyon 4: Kung kailangan mo lang ng min OR max, array_reduce() ay maaaring mas mabilis:

$min = array_reduce ($array, function ($min, $details) ( return min ($min, $details["weight"]); ), PHP_INT_MAX);

Nagagawa nito ang higit sa min() s, ngunit napakabilis ng mga ito. Ang PHP_INT_MAX ay dapat magsimula sa maximum at bumaba nang pababa. Maaari mong gawin ang parehong para sa $max , ngunit magsisimula ka sa 0 o -PHP_INT_MAX .

array ("id" => "20110209172713", "Petsa" => "2011-02-09", "Timbang" => "200", 1 => array ("id" => "20110209172747", " Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011-02-09", "Timbang" => "175",), 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195",),) ; foreach ($array bilang $key => $value) ($result[$key] = $value["Timbang"]; ) $min = min($result); $max = max($result); echo "Ang array sa Minnumum number:".$min."
"; echo " Ang array sa Maximum na numero: ".$max."
"; ?>

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

mabilis na mag-print ng limang max at min na mga numero mula sa isang array nang hindi gumagamit ng sort array sa php: -

Listahan ng pitong pinakamataas na temperatura:-"; $m= max($array); for($i=1; $i<7 ; $i++) { $m[$i]=max(array_diff($array,$m)); } foreach ($m as $key =>$value) ( ​​​​echo " ".$value; ) echo "
Listahan ng pitong pinakamababang temperatura: "; $mi= min($array); for($i=1; $i<7 ; $i++) { $mi[$i]=min(array_diff($array,$mi)); } foreach ($mi as $key =>$value) ( ​​​​echo " ".$value; ) ?>

Paano kung hindi gumagamit ng isang paunang natukoy na function tulad ng min o max ?

$arr = ; $val = $arr; $n = bilang($arr); para sa ($i=1;$i<$n;$i++) { if($val<$arr[$i]) { $val = $val; } else { $val = $arr[$i]; } } print($val);

Ito ay kagiliw-giliw na tandaan na ang parehong mga solusyon sa itaas ay gumagamit ng karagdagang imbakan sa anyo ng mga array (una ang isa sa mga ito at ang pangalawa ay isang array) at pagkatapos ay makikita mo ang min at max gamit ang "dagdag na storage" na array. Bagama't maaaring ito ay katanggap-tanggap sa totoong mundo ng programming (sino ang nagbibigay ng dalawang piraso tungkol sa "dagdag" na imbakan?), ito ay magbibigay sa iyo ng "C" sa Programming 101.

Ang problema sa paghahanap ng min at max ay madaling malutas sa pamamagitan lamang ng dalawang karagdagang memory slot

$first = intval($input["Timbang"]); $min = $una ; $max = $una ; foreach($input bilang $data) ($weight = intval($data["Weight"]); if($weight<= $min) { $min = $weight ; } if($weight >$max) ( $max = $weight ; ) ) echo " min = $min at max = $max \n " ;

$num = array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200"), 1 => array ("id" => "20110209172747", "Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011 - 02-09", "Timbang" => "175"), 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195 " )); foreach($num as $key => $val) ($weight = $val["Weight"]; ) echo max($weight); echo min($timbang);

Narito ang ilang paraan alisin ang elemento mula sa array gamit ang JavaScript .

Lahat ng inilarawan na pamamaraan huwag baguhin ang orihinal na hanay at sa halip ay lumikha ng bago.

Kung alam mo ang index ng elemento

Sabihin nating mayroon kang array at gusto mong tanggalin ang elemento sa position i .

Ang isang paraan ay ang paggamit ng slice() :

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

slice() ay lumilikha ng isang bagong array na may mga indeks na natatanggap nito. Gumagawa lang kami ng bagong array - mula sa simula hanggang sa index na gusto naming tanggalin, at pagsasama-samahin ang isa pang array mula sa unang posisyon kasunod ng tinanggal namin hanggang sa dulo ng array.

Kung alam mo ang kahulugan

Sa kasong ito, ang isang magandang opsyon ay ang paggamit ng filter() na nag-aalok ng higit pa paturol isang diskarte:

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

Gumagamit ito ng mga function ng ES6 arrow. Maaari kang gumamit ng mga tradisyonal na function upang suportahan ang mga mas lumang browser:

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

o maaari mong gamitin ang Babel at i-convert ang ES6 code pabalik sa ES5 upang gawin itong mas nababasa para sa mga mas lumang browser, ngunit sumulat ng modernong JavaScript sa iyong code.

Pag-alis ng maraming item

Paano kung sa halip na isang elemento ay gusto mong tanggalin ang maraming elemento?

Hanapin natin ang pinakasimpleng solusyon.

Sa pamamagitan ng index

Maaari ka lamang lumikha ng isang function at mag-alis ng mga elemento nang sunud-sunod:

const item = ["a", "b", "c", "d", "e", "f"] const removeItem = (item, 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"] console. log(filteredItems)

Sa pamamagitan ng halaga

Maaari kang maghanap ng pagsasama sa loob ng callback function:

const item = ["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)

Iwasang i-mutate ang orihinal na array

Ang splice() (hindi malito sa slice()) ay nagmu-mutate sa orihinal na array at dapat na iwasan.


Mayroon akong ganitong array:

Array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200", 1 => array ("id" => "20110209172747", "Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011- 02-09", "Timbang" => "175", 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195 ",),)

Kailangan kong kunin ang pinakamababa at pinakamataas na halaga ng timbang. Sa halimbawang ito

$min_value = 175

$max_value = 200

Anumang tulong sa kung paano gawin ito? Salamat!


2018-05-01 03:06

Mga sagot:

Opsyon 1: Una mong i-collate ang array para makuha ang mga numerong iyon (hindi ang buong impormasyon):

$numbers = array_column($array, "weight")

Pagkatapos ay makakakuha ka ng min at max:

$min = min($numero); $max = max($numero);

Pagpipilian 2. (Tanging kung wala kang PHP 5.5.) Pareho sa opsyon 1, ngunit para makuha ang mga halaga, gamitin ang array_map:

$numbers = array_map(function($details) ( return $details["Weight"]; ), $array);

Opsyon 3.

Opsyon 4: Kung kailangan mo ng min max, array_reduce() ay maaaring mas mabilis:

$min = array_reduce ($array, function ($min, $details) ( return min ($min, $details["weight"]); ), PHP_INT_MAX);

Nagagawa nito ang higit sa min() s, ngunit napakabilis ng mga ito. Ang PHP_INT_MAX ay dapat magsimula sa maximum at bumaba nang pababa. Magagawa mo ang parehong para sa $max , ngunit magsisimula ka sa 0 , o -PHP_INT_MAX .


2018-05-01 03:11

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


2018-05-01 03:09

Para sa mga taong gumagamit ng PHP 5.5+, mas madali itong magagawa gamit ang array_column .

Paano makuha ang maximum na halaga:

$highest_weight = max(array_column($detalye, "Timbang"));

Paano makuha ang pinakamababang halaga

$lowest_weight = min(array_column($detalye, "Timbang"));


2018-01-24 11:04

Ito ay kagiliw-giliw na tandaan na ang parehong mga solusyon sa itaas ay gumagamit ng karagdagang imbakan sa anyo ng mga array (una ang isa sa mga ito at ang pangalawa ay isang array) at pagkatapos ay makikita mo ang min at max gamit ang "dagdag na storage" na array. Bagama't maaaring ito ay katanggap-tanggap sa totoong mundo ng programming (sino ang nagbibigay ng dalawang piraso tungkol sa "dagdag" na imbakan?), ito ay magbibigay sa iyo ng "C" sa Programming 101.

Ang problema sa paghahanap ng min at max ay madaling malutas sa pamamagitan lamang ng dalawang karagdagang memory slot

$first = intval($input["Timbang"]); $min = $una ; $max = $una ; foreach($input bilang $data) ($weight = intval($data["Weight"]); if($weight<= $min) { $min = $weight ; } if($weight >$max) ( $max = $weight ; ) ) echo " min = $min at max = $max \n " ;


2018-05-01 06:08

$num = array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200"), 1 => array ("id" => "20110209172747", "Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011 - 02-09", "Timbang" => "175"), 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195 " )); foreach($num as $key => $val) ($weight = $val["Weight"]; ) echo max($weight); echo min($timbang);


2018-01-10 06:44

array ("id" => "20110209172713", "Petsa" => "2011-02-09", "Timbang" => "200", 1 => array ("id" => "20110209172747", " Petsa" => "2011-02-09", "Timbang" => "180", 2 => array ("id" => "20110209172827", "Petsa" => "2011-02-09", "Timbang" => "175",), 3 => array ("id" => "20110211204433", "Petsa" => "2011-02-11", "Timbang" => "195",),) ; foreach ($array bilang $key => $value) ($result[$key] = $value["Timbang"]; ) $min = min($result); $max = max($result); echo "Ang array sa Minnumum number:".$min."
"; echo " Ang array sa Maximum na numero: ".$max."
"; ?>


2017-11-11 19:33

$Location_Category_array = array(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);//Bilangin ang mga value sa array, ibinabalik ang associate array print_r($count); $maxsize = 0; $maxvalue = 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)

min - Hinahanap ang pinakamaliit na halaga

Paglalarawan

Kung isang argumento lang ang naipasa - isang hanay ng mga numero, min() ibinabalik ang pinakamaliit sa kanila. Kung ang unang argumento ay isang integer o float, dapat mayroong kahit isa pa. Sa kasong ito ang function min() ibabalik ang pinakamaliit sa kanila.

Magkomento:

Ang mga halaga ng iba't ibang uri ay inihambing gamit ang karaniwang mga panuntunan sa paghahambing. Halimbawa, isang non-numeric na string ( string) ay ihahambing sa isang integer ( integer) na parang pantay 0 , ngunit ilang linya ( string) ay ihahambing ayon sa alpabeto. Pananatilihin ng return value ang orihinal na uri ng variable, nang walang conversion.

Ibalik ang mga halaga

Function min() ibinabalik ang halaga ng parameter na itinuturing na "pinakamaliit" ayon sa karaniwang mga panuntunan sa paghahambing. Kung maramihang mga halaga iba't ibang uri ay pantay-pantay sa isa't isa (i.e. 0 At "abc"), pagkatapos ay ibabalik ang una.

Mga halimbawa

Halimbawa #1 Halimbawa ng paggamit min()

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

// Ang string na "hello", kung ihahambing sa int, ay itinuturing bilang 0
// Dahil ang parehong mga halaga ay pantay, ang pagkakasunud-sunod ng mga parameter ay tumutukoy sa resulta
echo min(0, "hello"); // 0
echo min ("hello" , 0 ); // Kamusta

// Dito natin inihahambing ang -1< 0, поэтому -1 является наименьшим значением
echo min ("hello" , - 1 ); // -1

// Kapag naghahambing ng mga array na may iba't ibang haba, ibabalik ng min ang mas maikli
$val = min (array(2 , 2 , 2 ), array(1 , 1 , 1 , 1 )); // array(2, 2, 2)

// Maramihang mga array ng parehong haba ay inihambing mula kaliwa hanggang kanan
// para sa halimbawang ito: 2 == 2, ngunit 4< 5
$val = min (array(2 , 4 , 8 ), array(2 , 5 , 1 )); // array(2, 4, 8)

// Kung ihahambing ang isang array at isang non-array, hindi na ibabalik ang array
// dahil ang mga array ay itinuturing na mas malaki kaysa sa lahat ng iba pang mga halaga
$val = min ("string" , array(2 , 5 , 7 ), 42 ); //string

// Kung ang isang argumento ay NULL o boolean, ihahambing ito sa iba
// gamit ang FALSE rule< TRUE, учитывая остальные типы аргументов
// Sa halimbawang ibinigay, -10 at 10 ay itinuturing bilang TOTOO
$val = min (- 10 , MALI , 10 ); // MALI
$val = min (- 10 , NULL , 10 ); // WALA

// sa kabilang banda, ang 0 ay itinuturing na MALI, kaya ito ay "mas mababa" kaysa sa TOTOO
$val = min(0, TRUE); // 0
?>

Mayroon akong array sa ganitong format:

Array ( => Array ( => 117 => Networking => 16) => Array ( => 188 => FTP => 23) => Array ( => 189 => Internet => 48))

Kung may a magandang paraan makakuha ng min at max na halaga ng "count"? Magagawa ko ito gamit ang maraming mga loop, ngunit naisip ko na maaaring may mas mahusay na paraan.

Hindi tulad ng iba, hindi mo magagamit ang min() / max() na mga function para sa problemang ito, dahil hindi naiintindihan ng mga function na ito ang mga arrays ng data (array) na ipinasa sa kanila. Gumagana lang ang mga function na ito para sa mga elemento ng scalar array.

SIMULAN ANG LARAWAN

Ang dahilan kung bakit ang paggamit ng min() at max() ay tila nagbibigay ng tamang sagot ay dahil ang mga array ay type-casting sa mga integer, na hindi natukoy na pag-uugali:

Ang pag-uugali ng conversion sa integer ay hindi tinukoy para sa iba pang mga uri. Huwag umasa sa anumang naobserbahang gawi dahil maaari itong magbago nang walang babala.

Mali ang pahayag ko sa itaas tungkol sa type-casting. Sa totoo lang, ang min() at max() ay gumagana sa mga array, ngunit hindi sa paraang kailangan ng OP na gumana ang mga ito. Kapag gumagamit ng min() at max() na may maraming mga array o isang array ng mga elemento ng array, ihambing ang mga elemento ng elemento sa pamamagitan ng elemento mula kaliwa hanggang kanan:

$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8) /* * unang elemento kumpara sa unang elemento: 2 == 2 * pangalawang elemento kumpara sa pangalawang elemento: 4< 5 * first array is considered the min and is returned */

Isinalin sa problema, ipinapakita ng OP kung bakit ang direktang paggamit ng min() at max() ay tila nagbibigay ng tamang resulta. Ang mga unang elemento ng array ay id , kaya min() at max() ihambing muna ang mga ito, sa pamamagitan ng paraan, na humahantong sa tamang resulta, dahil ang pinakamababang id ay ang may pinakamababang bilang at ang pinakamataas na id ay ang isa na may pinakamataas na bilang.

END EDIT

Ang tamang paraan ay ang paggamit ng loop.

$a = array(array("id" => 117, "name" => "Networking", "count" => 16), array("id" => 188, "name" => "FTP", " count" => 23), array("id" => 189, "name" => "Internet", "count" => 48)); $min = PHP_INT_MAX; $max = 0; foreach ($a bilang $i) ($min = min($min, $i["bilang"]); $max = max($max, $i["bilang"]); )

Maaari mong gamitin ang max() at min() function.

Ano ang ginawa mo sa maraming mga loop? Ang isa ay sapat na :)

  1. Kunin ang unang elemento sa pamamagitan ng pagbibilang ng bilang ng parehong $min at max
  2. ulitin ang natitira, ihambing ang bilang sa bawat $min at $max, kung mas kaunti/mas malaki ay magtalaga ng bagong halaga ng bilang

Maaari mong gamitin ang max/min function dahil magbabalik sila ng array na naglalaman ng maximum/minimum ng bawat index. Ang iyong halimbawa ay dapat magbalik ng array(189, "Networking", 48) para sa max . Maaari mong makuha ang puntos mula sa array na ito.

Ang pag-update nito ay hindi gagana gaya ng aking ibinukod. Ang halimbawa ng man page ay nakakapanlinlang at ang halimbawa ay nagbibigay ng tamang resulta gamit ang max, ngunit iyon ay nagkataon lamang.

Mukhang hindi mo magagamit ang max() sa isang 2D array. Ibinabalik lamang nito ang pinakamalaking array, sa halip na max() ng bawat index (tulad ng nakasaad sa ilang mga sagot).

$count = array(); foreach($arr bilang $_arr) ($count = $_arr["count"]; ) var_dump(max($count), min($count));

Mayroon bang katumbas built-in function para dito? (kahit walang posibilidad pagsubok)

/** * kinukuha ang isang column mula sa isang 2D array na may opsyonal na pagpipilian sa isa pang column * * @param $ aArray na kukunin mula sa * @param $ aColName pangalan ng column na kukunin, hal. "O_NAME" * @param $aColTest (opsyonal) pangalan ng column para patakbuhin ang pagsubok, hal. "O_ID" * @param $aTest (opsyonal) string para sa pagsubok na hal. ">=10", "== "". $Toto. "" " * @return 1D array na ang column lang ang na-extract * @access public * / function extractColFromArray ($aArray, $aColName, $aColTest = "", $ aTest = "") ( $mRes = array()); foreach ($aArray as $row) ( if ($aColTest == "") || (eval("return". $row[$aColTest]. $ aTest. ";"))) ($ mRes = $ row [ $ aColName ]; ) ) bumalik $ mRes ) // extractColFromArray