09.09.2024
Heim / Spielekonsolen / Min – Findet den kleinsten Wert. Min – Findet den kleinsten Minimalwert in einem PHP-Array

Min – Findet den kleinsten Wert. Min – Findet den kleinsten Minimalwert in einem PHP-Array

Arrays sind eine der bequemen strukturierten Möglichkeiten zum Speichern von Informationen. Jedes Element eines solchen Arrays hat seinen eigenen Platz, seinen eigenen Schlüssel und Wert. Der Inhalt von Arrays kann unterschiedlich sein, wie beispielsweise eine Basis aus Zahlen, Namen oder einfachen numerischen Werten. Apropos Zahlen: Wir stehen möglicherweise vor verschiedenen Aufgaben, beispielsweise der Ableitung des Maximal- oder Minimalwerts. Heute werden wir darüber sprechen, wie dies in verschiedenen Programmiersprachen gelöst wird.

Ermitteln des größten und kleinsten Werts eines eindimensionalen Arrays in PHP

Alle Arrays unterscheiden sich in ihrer Struktur. Betrachten Sie zwei einfache eindimensionale Arrays, von denen eines keine Schlüssel enthält:

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

und eine identisch mit der vorherigen, aber mit Schlüsseln:

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

Versuchen wir, die Maximal- und Minimalwerte dieses Arrays anzuzeigen. Dazu verwenden wir Standardfunktionen. max" Und " min" jeweils:

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

Wenn wir uns das zweite Array genauer ansehen, können wir als Ergebnis den Schlüssel der Maximal- bzw. Minimalwerte erhalten.

Am Beispiel eines Arrays

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

es wird so aussehen:

$max = array_keys($my_array, max($my_array)); $max = $max;// Maximalwertschlüssel $min = array_keys($my_array, min($my_array)); $min = $min; // Minimalwert key echo $max; // Das Ergebnis des Maximalwerts ausgeben

Dementsprechend ist der Maximalwertschlüssel „4“ und der Minimalwert „6“.

Ermitteln des größten und kleinsten Werts eines mehrdimensionalen Arrays in PHP

Mehrdimensionale Arrays zeichnen sich durch ihre Verschachtelung aus. Ein zweidimensionales Array würde beispielsweise ohne die Schlüssel so aussehen:

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

Und dementsprechend mit bestimmten Schlüsseln:

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

In diesem Fall ist es etwas schwierig, aber auch möglich, die Maximal- und Minimalwerte zu finden.

Um hier das Maximum und Minimum zu finden, transformieren wir zunächst das Array in ein eindimensionales:

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

Das Design funktioniert für beide oben genannten Optionen. Und dann zeigen wir am Beispiel eines eindimensionalen Arrays die benötigten Daten an:

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

Als kleinen Bonus gebe ich ein Beispiel für ein weiteres beliebtes zweidimensionales Array:

$my_array = array(array("id" => "1", "date" => "2018-03-19", "price" => "5",), array ("id" => "2" , „Datum“ => „19.03.2018“, „Preis“ => „50“,), Array („ID“ => „3“, „Datum“ => „19.03.2018“, „ Preis" => "25",));

Mit Popularität meine ich nicht den Inhalt, sondern ein Beispiel für dessen Struktur. Nehmen wir an, Sie müssen hier nur die Maximal- und Minimalwerte der „Preis“-Tasten ausgeben.

Das erste, was Sie in diesem Fall brauchen, ist zu bekommen neues Array nur mit diesen Daten:

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

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

Damit ist die Arbeit mit Arrays in PHP abgeschlossen. Wenn die Struktur Ihres Arrays plötzlich anders ist und Sie nicht wissen, wie Sie es verarbeiten sollen, stellen Sie die entsprechende Frage in den Kommentaren. Ich werde versuchen, Ihnen zu helfen.

Ermitteln des größten und kleinsten Werts eines eindimensionalen Arrays in JavaScript

Im Gegensatz zu PHP ist der Array-Typ in JavaScript viel einfacher und ein einfaches eindimensionales Array sieht so aus:

Var my_array = ;

Hier werden keine Indizes angegeben. Um die Maximal- und Minimalwerte in diesem Array zu finden, schreiben wir selbst zwei einfache Funktionen:

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

die verwendet werden, um die Werte zu finden, die wir brauchen. Auch die Verwendung ist einfach:

Alert(arrayMax(my_array)); // 74 drucken warning(arrayMin(my_array)); // Drucken 2

In diesem Fall werden die Zahlen „2“ und „74“ als Minimal- und Maximalwerte des Arrays auf dem Bildschirm angezeigt.

Ermitteln des größten und kleinsten Werts eines mehrdimensionalen Arrays in JavaScript

Mehrdimensionale Arrays in JavaScript sind genauso einfach und sehen so aus:

Var my_array = [ , , ];

Versuchen wir hier das Maximum und das Minimum zu finden. Zunächst schreiben wir eine Funktion, mit der wir nach dem uns bereits bekannten Schema dieses Array eindimensional darstellen:

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

Und mit dem Objekt „ Mathe„Wir bekommen die Werte, die wir brauchen:

Var min = Math.min.apply(null, out_array); // Holen Sie sich 2 var max = Math.max.apply(null, out_array); // 74-Alarm erhalten (max); // 74 auf dem Bildschirm ausgeben

Tatsächlich anstelle des Objekts „ Mathe„Sie können unsere in der Version mit einem eindimensionalen Array verwendeten Funktionen verwenden, aber damit Sie verstehen, dass jedes Problem auf verschiedene Arten gelöst werden kann – hier habe ich eine etwas andere Lösung angegeben.

Nun ja, der Tradition entsprechend – ein kleiner Bonus. Betrachten wir ein weiteres mehrdimensionales Array mit der folgenden Struktur:

Var my_array = [["One", "2018-03-19", 5], ["Two", "2018-03-19", 50], ["Three", "2018-03-19", 25 ], ];

Wie wir sehen können, stehen die numerischen Werte in jedem Array an dritter Stelle. Schreiben wir etwas Code und erhalten die entsprechenden Werte aus diesen Daten:

Var min = +Unendlich; var max = -Infinity; my_array.forEach(function(item) ( if(+item< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >max) ( max =+ item; // Suche nach dem Maximalwert ) )); alarm(min+" "+max); // Das Ergebnis auf dem Bildschirm anzeigen

Das ist alles. Vergessen Sie nicht, das Projekt zu unterstützen. Es erwarten Sie viele interessante Dinge!

Schlüssel bekommen (9)

Ich habe dieses Array:

Array (0 => Array ("id" => "20110209172713", "Datum" => "2011-02-09", "Gewicht" => "200",), 1 => Array ("id" => „20110209172747“, „Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011- 02-09“, „Gewicht“ => „175“, 3 => Array („id“ => „20110211204433“, „Datum“ => „11.02.2011“, „Gewicht“ => „195 ",),)

Ich muss die minimalen und maximalen Gewichtswerte extrahieren. In diesem Beispiel

$min_value = 175

$max_value = 200

Gibt es Hilfe dazu? Danke schön!

Antworten

Für Leute, die PHP 5.5+ verwenden, kann dies mit array_column viel einfacher gemacht werden. Keine Notwendigkeit für diese hässlichen Arrays.

So erhalten Sie den Maximalwert:

$highest_weight = max(array_column($details, "Weight"));

So erhalten Sie den Mindestwert

$lowest_weight = min(array_column($details, "Weight"));

Option 1: Zuerst sortieren Sie das Array, um diese Zahlen zu erhalten (nicht die vollständigen Informationen):

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

Dann erhältst du Min und Max:

$min = min($numbers); $max = max($numbers);

Option 2. (Nur wenn Sie nicht über PHP 5.5 verfügen.) Wie Option 1, aber um die Werte abzurufen, verwenden Sie array_map:

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

Option 3.

Option 4: Wenn Sie nur min ODER max benötigen, ist array_reduce() möglicherweise schneller:

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

Das macht mehr als min() s, aber sie sind sehr schnell. PHP_INT_MAX sollte bei einem Maximum beginnen und immer niedriger werden. Sie können dasselbe für $max tun, beginnen jedoch mit 0 oder -PHP_INT_MAX .

array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200", 1 => array ("id" => "20110209172747", " Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011-02-09“, „Gewicht“ => „175“,), 3 => Array („id“ => „20110211204433“, „Datum“ => „2011-02-11“, „Gewicht“ => „195“,),) ; foreach ($array as $key => $value) ( ​​​​$result[$key] = $value["Weight"]; ) $min = min($result); $max = max($result); echo „Das Array in Minnumum number:“.$min.“
"; echo " Das Array in Maximalzahl: „.$max.“
"; ?>

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

Drucken Sie schnell fünf maximale und minimale Zahlen aus einem Array, ohne Sortierarray in PHP zu verwenden:-

Liste der sieben höchsten Temperaturen:-"; $m= max($array); for($i=1; $i<7 ; $i++) { $m[$i]=max(array_diff($array,$m)); } foreach ($m as $key =>$value) ( ​​​​echo " ".$value; ) echo "
Liste der sieben niedrigsten Temperaturen: "; $mi= min($array); for($i=1; $i<7 ; $i++) { $mi[$i]=min(array_diff($array,$mi)); } foreach ($mi as $key =>$value) ( ​​​​echo " ".$value; ) ?>

Wie wäre es, ohne eine vordefinierte Funktion wie min oder max zu verwenden?

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

Es ist interessant festzustellen, dass beide oben genannten Lösungen zusätzlichen Speicher in Form von Arrays verwenden (die erste davon und die zweite ein Array) und Sie dann die Mindest- und Höchstwerte mithilfe des „Extra Storage“-Arrays ermitteln. Während dies in der realen Welt des Programmierens akzeptabel sein mag (wer verrät schon etwas über „zusätzlichen“ Speicher?), würde es Ihnen ein „C“ in Programmieren 101 bescheren.

Das Problem, Min und Max zu finden, kann mit nur zwei zusätzlichen Speicherplätzen leicht gelöst werden

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

$num = array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200"), 1 => array ("id" => „20110209172747“, „Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011 – 02-09", "Gewicht" => "175"), 3 => Array ("id" => "20110211204433", "Datum" => "2011-02-11", "Gewicht" => "195 " ));

foreach($num as $key => $val) ( $weight = $val["Weight"]; ) echo max($weight); echo min($weight); .

Hier sind einige Möglichkeiten Element mit JavaScript aus dem Array entfernen Alle beschriebenen Methoden

Ändern Sie nicht das ursprüngliche Array

und stattdessen ein neues erstellen.

Wenn Sie den Elementindex kennen

Nehmen wir an, Sie haben ein Array und möchten das Element an Position i entfernen.

Eine Möglichkeit ist die Verwendung von Slice() :

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

Slice() erstellt ein neues Array mit den empfangenen Indizes. Wir erstellen einfach ein neues Array – vom Anfang bis zum Index, den wir löschen möchten, und verketten ein weiteres Array von der ersten Position nach der von uns gelöschten bis zum Ende des Arrays. Wenn Sie die Bedeutung kennen In diesem Fall ist die Verwendung von filter() eine gute Option, die mehr bietet

deklarativ

Ansatz:

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

Dies nutzt ES6-Pfeilfunktionen. Sie können herkömmliche Funktionen verwenden, um ältere Browser zu unterstützen:

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

Oder Sie können Babel verwenden und den ES6-Code zurück in ES5 konvertieren, um ihn für ältere Browser besser lesbar zu machen, aber modernes JavaScript in Ihren Code schreiben.

Mehrere Elemente entfernen

Was wäre, wenn Sie statt eines Elements viele Elemente löschen möchten?

Lassen Sie uns die einfachste Lösung finden.

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"] Konsole. log(filteredItems)

Nach Wert

Sie können nach Einbindung in die Callback-Funktion suchen:

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

Vermeiden Sie es, das ursprüngliche Array zu verändern

splice() (nicht zu verwechseln mit Slice()) verändert das ursprüngliche Array und sollte vermieden werden.


Ich habe dieses Array:

Array (0 => Array ("id" => "20110209172713", "Datum" => "2011-02-09", "Gewicht" => "200",), 1 => Array ("id" => „20110209172747“, „Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011- 02-09“, „Gewicht“ => „175“, 3 => Array („id“ => „20110211204433“, „Datum“ => „11.02.2011“, „Gewicht“ => „195 ",),)

Ich muss die minimalen und maximalen Gewichtswerte extrahieren. In diesem Beispiel

$min_value = 175

$max_value = 200

Gibt es Hilfe dazu? Danke schön!


2018-05-01 03:06

Antworten:

Option 1: Zuerst sortieren Sie das Array, um diese Zahlen zu erhalten (nicht die vollständigen Informationen):

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

Dann erhältst du Min und Max:

$min = min($numbers); $max = max($numbers);

Option 2. (Nur wenn Sie nicht über PHP 5.5 verfügen.) Wie Option 1, aber um die Werte abzurufen, verwenden Sie array_map:

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

Option 3.

Option 4: Wenn Sie „Min Max“ benötigen, ist array_reduce() möglicherweise schneller:

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

Das macht mehr als min() s, aber sie sind sehr schnell. PHP_INT_MAX sollte bei einem Maximum beginnen und immer niedriger werden. Sie können dasselbe für $max tun, beginnen jedoch mit 0 oder -PHP_INT_MAX .


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

Für Leute, die PHP 5.5+ verwenden, kann dies mit array_column viel einfacher gemacht werden. Diese hässlichen Arrays sind nicht erforderlich.

So erhalten Sie den Maximalwert:

$highest_weight = max(array_column($details, "Weight"));

So erhalten Sie den Mindestwert

$lowest_weight = min(array_column($details, "Weight"));


2018-01-24 11:04

Es ist interessant festzustellen, dass beide oben genannten Lösungen zusätzlichen Speicher in Form von Arrays verwenden (die erste davon und die zweite ein Array) und Sie dann die Mindest- und Höchstwerte mithilfe des „Extra Storage“-Arrays ermitteln. Während dies in der realen Welt des Programmierens akzeptabel sein mag (wer verrät schon etwas über „zusätzlichen“ Speicher?), würde es Ihnen ein „C“ in Programmieren 101 bescheren.

Das Problem, Min und Max zu finden, kann mit nur zwei zusätzlichen Speicherplätzen leicht gelöst werden

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


2018-05-01 06:08

$num = array (0 => array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200"), 1 => array ("id" => „20110209172747“, „Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011 – 02-09", "Gewicht" => "175"), 3 => Array ("id" => "20110211204433", "Datum" => "2011-02-11", "Gewicht" => "195 " ));


2018-01-10 06:44

array ("id" => "20110209172713", "Date" => "2011-02-09", "Weight" => "200", 1 => array ("id" => "20110209172747", " Datum“ => „2011-02-09“, „Gewicht“ => „180“, 2 => Array („id“ => „20110209172827“, „Datum“ => „2011-02-09“, „Gewicht“ => „175“,), 3 => Array („id“ => „20110211204433“, „Datum“ => „2011-02-11“, „Gewicht“ => „195“,),) ; foreach ($array as $key => $value) ( ​​​​$result[$key] = $value["Weight"]; ) $min = min($result); $max = max($result); echo „Das Array in Minnumum number:“.$min.“
"; echo " Das Array in Maximalzahl: „.$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);//Zählt die Werte im Array und gibt das zugehörige Array zurück 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 — Findet den kleinsten Wert Beschreibung Findet den kleinsten Wert Wenn nur ein Argument übergeben wird – ein Array aus Zahlen,

Kommentar:

Werte unterschiedlichen Typs werden mithilfe von Standardvergleichsregeln verglichen. Beispielsweise eine nicht numerische Zeichenfolge ( Zeichenfolge) wird mit einer Ganzzahl ( ganze Zahl), als ob es gleich wäre 0 , aber mehrere Zeilen ( Zeichenfolge) werden alphabetisch verglichen. Der Rückgabewert behält den ursprünglichen Typ der Variablen ohne Konvertierung bei.

Rückgabewerte

Funktion Findet den kleinsten Wert gibt den Wert des Parameters zurück, der gemäß den Standardvergleichsregeln als der „kleinste“ gilt. Wenn mehrere Werte verschiedene Typen einander gleich sind (d. h. 0 Und "ABC"), dann wird der erste zurückgegeben.

Beispiele

Beispiel Nr. 1 Anwendungsbeispiel Findet den kleinsten Wert

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

// Die Zeichenfolge „hello“ wird beim Vergleich mit int als 0 behandelt
// Da beide Werte gleich sind, bestimmt die Reihenfolge der Parameter das Ergebnis
echo min(0, "Hallo"); // 0
echo min ("Hallo" , 0 ); // Hallo

// Hier vergleichen wir -1< 0, поэтому -1 является наименьшим значением
echo min ("Hallo" , - 1 ); // -1

// Beim Vergleich von Arrays unterschiedlicher Länge gibt min das kürzere zurück
$val = min (array(2 , 2 , 2 ), array(1 , 1 , 1 , 1 )); // Array(2, 2, 2)

// Mehrere Arrays gleicher Länge werden von links nach rechts verglichen
// für dieses Beispiel: 2 == 2, aber 4< 5
$val = min (array(2 , 4 , 8 ), array(2 , 5 , 1 )); // Array(2, 4, 8)

// Wenn ein Array und ein Nicht-Array verglichen werden, wird das Array nie zurückgegeben
// da Arrays als größer betrachtet werden als alle anderen Werte
$val = min ("string" , array(2 , 5 , 7 ), 42 ); //string

// Wenn ein Argument NULL oder boolesch ist, wird es mit den anderen verglichen
// unter Verwendung der FALSE-Regel< TRUE, учитывая остальные типы аргументов
// Im angegebenen Beispiel werden -10 und 10 als TRUE behandelt
$val = min (- 10, FALSE, 10); // FALSCH
$val = min (- 10, NULL, 10); // NULL

// Andererseits wird 0 als FALSCH behandelt, ist also „kleiner“ als WAHR
$val = min(0, TRUE); // 0
?>

Ich habe ein Array in diesem Format:

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

Ist da guter Weg Min- und Max-Werte von „count“ erhalten? Ich könnte dies mit mehreren Schleifen tun, aber ich dachte, es gäbe vielleicht einen besseren Weg.

Im Gegensatz zu anderen können Sie die Funktionen min() / max() für dieses Problem nicht verwenden, da diese Funktionen die ihnen übergebenen Datenarrays (Array) nicht verstehen. Diese Funktionen funktionieren nur für skalare Array-Elemente.

STARTBILD

Der Grund, warum die Verwendung von min() und max() die richtige Antwort zu geben scheint, liegt darin, dass Arrays eine Typumwandlung in Ganzzahlen durchführen, was ein undefiniertes Verhalten ist:

Das Konvertierungsverhalten in Integer ist für andere Typen nicht definiert. Verlassen Sie sich nicht auf beobachtetes Verhalten, da sich dieses ohne Vorwarnung ändern kann.

Meine obige Aussage zur Typisierung war falsch. Eigentlich funktionieren min() und max() mit Arrays, aber nicht so, wie das OP sie zum Funktionieren benötigt. Wenn Sie min() und max() mit mehreren Arrays oder einem Array aus Array-Elementen verwenden, vergleichen Sie die Elemente Element für Element von links nach rechts:

$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8) /* * erstes Element im Vergleich zum ersten Element: 2 == 2 * zweites Element im Vergleich zum zweiten Element: 4< 5 * first array is considered the min and is returned */

Übersetzt in das Problem zeigt das OP, warum die direkte Verwendung von min() und max() das richtige Ergebnis zu liefern scheint. Die ersten Elemente des Arrays sind id , also vergleichen min() und max() sie übrigens zuerst, was zum korrekten Ergebnis führt, denn die niedrigste id ist diejenige mit der niedrigsten Anzahl und die höchste id ist die eins das hat die höchste Anzahl.

ENDE BEARBEITUNG

Der richtige Weg ist die Verwendung einer Schleife.

$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 as $i) ( $min = min($min, $i["count"]); $max = max($max, $i["count"]); )

Sie können die Funktionen max() und min() verwenden.

Was hast du mit mehreren Schleifen gemacht? Einer reicht :)

  1. Erhalten Sie das erste Element, indem Sie die Anzahl von $min und max zählen
  2. iteriere über den Rest, vergleiche die Anzahl mit jedem $min und $max, wenn kleiner/größer, weise einen neuen Zählwert zu

Sie können die Max/Min-Funktionen verwenden, da diese ein Array zurückgeben, das das Maximum/Minimum jedes Index enthält. Ihr Beispiel sollte array(189, "Networking", 48) für max zurückgeben. Sie können dann die Punktzahl aus diesem Array abrufen.

Das Aktualisieren funktioniert nicht, wie ich ausgeschlossen habe. Das Manpage-Beispiel ist irreführend und das Beispiel liefert bei Verwendung von max das richtige Ergebnis, aber das ist nur ein Zufall.

Es sieht so aus, als ob Sie max() nicht für ein 2D-Array verwenden können. Es gibt einfach das größte Array zurück und nicht max() jedes Index (wie in mehreren Antworten angegeben).

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

Gibt es ein Äquivalent? eingebaut Funktion dafür? (auch ohne die Möglichkeit Testen)

/** * ruft eine Spalte aus einem 2D-Array mit einer optionalen Auswahl über einer anderen Spalte ab * * @param $ aArray zum Abrufen von * @param $ aColName Name der abzurufenden Spalte, z. B. „O_NAME“ * @param $aColTest (optional) Spaltenname zum Ausführen des Tests, z. B. „O_ID“ * @param $aTest (optional) Zeichenfolge für Testbeispiel. ">=10", "== "". $Toto. "" " * @return 1D-Array mit nur der extrahierten Spalte * @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