قائمة طعام
مجانا
تسجيل
بيت  /  إنترنت/ php يعثر على أصغر قيمة في المصفوفة. PHP احصل على القيم الدنيا والقصوى في مصفوفة ترابطية ثنائية الأبعاد

php تجد أصغر قيمة في المصفوفة. PHP احصل على القيم الدنيا والقصوى في مصفوفة ترابطية ثنائية الأبعاد

(PHP 4 ، PHP 5 ، PHP 7)

دقيقة - يجد أصغر قيمة

وصف

إذا تم تمرير واحد فقط كوسيطات - مصفوفة من الأرقام ، دقيقة ()إرجاع أصغر منهم. إذا كانت الوسيطة الأولى عددًا صحيحًا أو عددًا عشريًا ، فيجب أن يكون هناك واحد آخر على الأقل. في هذه الحالة ، الوظيفة دقيقة ()سيعود أصغر منهم.

تعليق:

تتم مقارنة قيم الأنواع المختلفة باستخدام قواعد المقارنة القياسية. على سبيل المثال ، سلسلة غير رقمية ( خيط) سيتم مقارنتها بعدد صحيح ( عدد صحيح) كما لو كانت تساوي 0 ، لكن بضعة أسطر ( خيط) ستتم مقارنتها أبجديًا. ستحتفظ القيمة المعادة بالنوع الأصلي للمتغير ، بدون تحويل.

إرجاع القيم

وظيفة دقيقة ()إرجاع قيمة أي معلمة تعتبر "أصغر" وفقًا لقواعد المقارنة القياسية. إذا كانت القيم متعددة نوع مختلفمتساوون (أي 0 و "abc") ، ثم سيتم إرجاع أول واحد.

أمثلة

المثال رقم 1 مثال على الاستخدام دقيقة ()

صدى دقيقة (2 ، 3 ، 1 ، 6 ، 7) ؛ // 1
صدى دقيقة (مجموعة (2 ، 4 ، 5)) ؛ // 2

// يتم التعامل مع السلسلة "hello" على أنها 0 عند مقارنتها بعدد int
// نظرًا لأن كلا القيمتين متساويتان ، فإن ترتيب المعلمات يحدد النتيجة
echo min (0، "hello") ؛ // 0
echo min ("hello"، 0)؛ // مرحبًا

// هنا نقارن -1< 0, поэтому -1 является наименьшим значением
صدى دقيقة ("مرحبًا" ، - 1) ؛ // -1

// عند مقارنة المصفوفات ذات الأطوال المختلفة ، سيعيد min الأقصر
$ val = min (مجموعة (2 ، 2 ، 2) ، صفيف (1 ، 1 ، 1 ، 1)) ؛ // مجموعة (2 ، 2 ، 2)

// تتم مقارنة المصفوفات المتعددة بنفس الطول من اليسار إلى اليمين
// على سبيل المثال: 2 == 2 لكن 4< 5
$ val = min (مجموعة (2، 4، 8)، صفيف (2، 5، 1)) ؛ // مجموعة (2 ، 4 ، 8)

// إذا تمت مقارنة مصفوفة وغير مصفوفة ، فلن يتم إرجاع المصفوفة أبدًا
// نظرًا لأن المصفوفات تعتبر أكبر من جميع القيم الأخرى
$ val = min ("سلسلة" ، صفيف (2 ، 5 ، 7) ، 42) ؛ // خيط

// إذا كانت إحدى الوسيطة فارغة أو منطقية ، فستتم مقارنتها بالباقي
// باستخدام قاعدة FALSE< TRUE, учитывая остальные типы аргументов
// في المثال أعلاه ، يتم التعامل مع -10 و 10 على أنها TRUE
$ val = min (- 10 ، FALSE ، 10) ؛ // خطأ شنيع
$ val = min (- 10، NULL، 10) ؛ // باطل

// من ناحية أخرى ، يتم التعامل مع القيمة 0 على أنها FALSE ، لذا فهي "أقل من" TRUE
$ val = min (0، TRUE) ؛ // 0
?>


لدي مصفوفة مثل هذا:

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

أحتاج إلى استخراج قيم الوزن الدنيا والقصوى. في هذا المثال

min_value دولار أمريكي = 175

max_value دولار = 200

أي مساعدة حول كيفية القيام بذلك؟ شكرًا لك!


2018-05-01 03:06

الإجابات:

الخيار 1: تقوم بتعيين المصفوفة أولاً للحصول على هذه الأرقام (بدلاً من معلومات كاملة):

مجموعة $ = array_column ($ array، "weight")

ثم تحصل على الحد الأدنى والحد الأقصى:

الحد الأدنى = الحد الأدنى (الأرقام بالدولار) ؛ ماكس دولار = ماكس (أرقام دولار) ؛

الخيار 2. (فقط إذا لم يكن لديك PHP 5.5.) مثل الخيار 1 ، لكن استخدم array_map لسحب القيم:

أرقام $ = array_map (الوظيفة (تفاصيل $) (إرجاع تفاصيل $ ["الوزن"] ؛) ، $ array) ؛

الخيار 3.

الخيار 4: إذا كنت بحاجة إلى حد أدنى كحد أدنى ، فقد يكون array_reduce () أسرع:

$ min = array_reduce ($ array، function ($ min، $ details) (return min ($ min، $ details ["weight"])؛)، PHP_INT_MAX)؛

تعمل أكثر من دقيقة ، لكنها سريعة جدًا. يجب أن يبدأ PHP_INT_MAX من الحد الأقصى وأن يبدأ في الانخفاض. يمكنك أن تفعل الشيء نفسه مقابل $ max ، لكنك ستبدأ من 0 ، أو -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

بالنسبة للأشخاص الذين يستخدمون PHP 5.5+ ، يمكن القيام بذلك بسهولة أكبر باستخدام array_column. لا حاجة لهذه المصفوفات القبيحة.

كيفية الحصول على أقصى قيمة:

الوزن_الأعلى بالدولار = max (array_column (تفاصيل بالدولار ، "الوزن")) ؛

كيفية الحصول على الحد الأدنى من القيمة

أدنى_وزن بالدولار = min (array_column ($ details، "Weight"))؛


2018-01-24 11:04

من المثير للاهتمام ملاحظة أن كلا الحلين المذكورين أعلاه يستخدمان مساحة تخزين إضافية في شكل مصفوفات (أول واحد منهما والثاني مصفوفة واحدة) ثم تجد الحد الأدنى والحد الأقصى باستخدام مصفوفة "التخزين الإضافي". على الرغم من أن هذا قد يكون مقبولاً في العالم الحقيقي للبرمجة (من يعطي بتتين حول التخزين "الإضافي"؟) ، فإنه سيحصل على "C" في البرمجة 101.

يمكن حل مشكلة العثور على min و max بسهولة من خلال فتحتي ذاكرة إضافيتين فقط

$ first = intval ($ input ["Weight"]) ؛ الحد الأدنى = دولار أول ؛ ماكس دولار = أول دولار ؛ foreach ($ input as $ data) ($ weight = intval ($ data ["Weight"]) ؛ إذا (الوزن بالدولار<= $min) { $min = $weight ; } if($weight >$ max) ($ max = $ weight؛)) صدى الصوت "min = $ min و max = $ max \ n"؛


2018-05-01 06:08

$ num = array (0 => array ("id" => "20110209172713"، "Date" => "2011-02-09"، "Weight" => "200")، 1 => array ("id" => "20110209172747"، "التاريخ" => "2011-02-09"، "الوزن" => "180")، 2 => مجموعة ("id" => "20110209172827"، "التاريخ" => "2011 -02-09 "،" Weight "=>" 175 ")، 3 => array (" id "=>" 20110211204433 "،" Date "=>" 2011-02-11 "،" Weight "=>" 195 ")) ؛ foreach ($ num as $ key => $ val) ($ weight = $ val ["Weight"] ؛) الحد الأقصى لصدى الصدى (الوزن بالدولار) ؛ صدى دقيقة (الوزن بالدولار) ؛


2018-01-10 06:44

array ("id" => "20110209172713"، "Date" => "2011-02-09"، "Weight" => "200"،)، 1 => array ("id" => "20110209172747"، " التاريخ "=>" 2011-02-09 "،" الوزن "=>" 180 "،) 2 => المصفوفة (" id "=>" 20110209172827 "،" التاريخ "=>" 2011-02-09 "، "Weight" => "175"،)، 3 => array ("id" => "20110211204433"، "Date" => "2011-02-11"، "Weight" => "195"،)،) ؛ foreach ($ array as $ key => $ value) ($ result [$ key] = $ value ["Weight"]؛) $ min = min ($ result)؛ ماكس دولار = ماكس (نتيجة بالدولار الأمريكي) ؛ صدى "المصفوفة في Minnumum number:". $ min. "
"؛ صدى" المصفوفة بأقصى رقم: ". $ max."
"; ?>


2017-11-11 19:33

$ Location_Category_array = مجموعة (5،50،7،6،1،7،7،30،50،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)؛ // يحسب القيم في المصفوفة ويعيد مصفوفة التجميع print_r ($ count)؛ الحجم الأقصى بالدولار = 0 ؛ أقصى قيمة بالدولار = 0 ؛ foreach ($ count as $ a => $ y) (echo "
". $ a." = ". $ y؛ if ($ y> = $ maxvalue) ($ maxvalue = $ y؛ if ($ a> $ maxsize) ($ maxsize = $ a؛))) echo"
max = ". maxsize دولار ؛

جيتكي (9)

لدي مصفوفة مثل هذا:

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

أحتاج إلى استخراج قيم الوزن الدنيا والقصوى. في هذا المثال

min_value دولار أمريكي = 175

max_value دولار = 200

أي مساعدة حول كيفية القيام بذلك؟ شكرًا لك!

الإجابات

بالنسبة للأشخاص الذين يستخدمون PHP 5.5+ ، يمكن القيام بذلك بسهولة أكبر باستخدام array_column. لا حاجة لتلك المصفوفات القبيحة.

كيفية الحصول على أقصى قيمة:

الوزن_الأعلى بالدولار = max (array_column (تفاصيل بالدولار ، "الوزن")) ؛

كيفية الحصول على الحد الأدنى من القيمة

أدنى_وزن بالدولار = min (array_column ($ details، "Weight"))؛

الخيار 1: أولاً تقوم بتعيين المصفوفة للحصول على هذه الأرقام (وليس المعلومات الكاملة):

مجموعة $ = array_column ($ array، "weight")

ثم تحصل على الحد الأدنى والحد الأقصى:

الحد الأدنى = الحد الأدنى (الأرقام بالدولار) ؛ ماكس دولار = ماكس (أرقام دولار) ؛

الخيار 2. (فقط إذا لم يكن لديك PHP 5.5.) مثل الخيار 1 ، لكن استخدم array_map لسحب القيم:

أرقام $ = array_map (الوظيفة (تفاصيل $) (إرجاع تفاصيل $ ["الوزن"] ؛) ، $ array) ؛

الخيار 3.

الخيار 4: إذا كنت تحتاج فقط إلى min OR max ، فقد يكون array_reduce () أسرع:

$ min = array_reduce ($ array، function ($ min، $ details) (return min ($ min، $ details ["weight"])؛)، PHP_INT_MAX)؛

هذا يجعل المزيد من الدقائق ، لكنها سريعة جدًا. يجب أن يبدأ PHP_INT_MAX من الحد الأقصى وأن يبدأ في الانخفاض. يمكنك أن تفعل الشيء نفسه مقابل $ max ، لكنك ستبدأ بـ 0 أو -PHP_INT_MAX.

array ("id" => "20110209172713"، "Date" => "2011-02-09"، "Weight" => "200"،)، 1 => array ("id" => "20110209172747"، " التاريخ "=>" 2011-02-09 "،" الوزن "=>" 180 "،) 2 => المصفوفة (" id "=>" 20110209172827 "،" التاريخ "=>" 2011-02-09 "، "Weight" => "175"،)، 3 => array ("id" => "20110211204433"، "Date" => "2011-02-11"، "Weight" => "195"،)،) ؛ foreach ($ array as $ key => $ value) ($ result [$ key] = $ value ["Weight"]؛) $ min = min ($ result)؛ ماكس دولار = ماكس (نتيجة بالدولار الأمريكي) ؛ صدى "المصفوفة في Minnumum number:". $ min. "
"؛ صدى" المصفوفة بأقصى رقم: ". $ max."
"; ?>

Foreach ($ array as $ k => $ v) ($ tArray [$ k] = $ v ["Weight"]؛) $ min_value = min ($ tArray)؛ max_value دولار = max ($ tArray) ؛

اطبع بسرعة خمسة أرقام كحد أقصى وأدنى من المصفوفة دون استخدام مصفوفة الفرز في php: -

قائمة بأعلى سبع درجات حرارة: - "؛ $ m = max ($ array) ؛ لـ ($ i = 1 ؛ $ i<7 ; $i++) { $m[$i]=max(array_diff($array,$m)); } foreach ($m as $key =>$ value) (صدى "". $ value؛) صدى "
قائمة بسبع درجات حرارة أدنى: "؛ $ mi = min ($ array)؛ for ($ i = 1؛ $ i<7 ; $i++) { $mi[$i]=min(array_diff($array,$mi)); } foreach ($mi as $key =>$ value) (صدى "". $ value؛)؟>

ماذا عن بدون استخدام دالة محددة مسبقًا مثل min أو max؟

$ arr = ؛ $ val = $ arr؛ $ n = عدد ($ arr) ؛ لـ ($ i = 1 ؛ $ i<$n;$i++) { if($val<$arr[$i]) { $val = $val; } else { $val = $arr[$i]; } } print($val);

من المثير للاهتمام ملاحظة أن كلا الحلين المذكورين أعلاه يستخدمان مساحة تخزين إضافية في شكل مصفوفات (أول واحد منهما والثاني مصفوفة واحدة) ثم تجد الحد الأدنى والحد الأقصى باستخدام مصفوفة "التخزين الإضافي". على الرغم من أن هذا قد يكون مقبولاً في العالم الحقيقي للبرمجة (من يعطي بتتين حول التخزين "الإضافي"؟) ، فإنه سيحصل على "C" في البرمجة 101.

يمكن حل مشكلة العثور على min و max بسهولة من خلال فتحتي ذاكرة إضافيتين فقط

$ first = intval ($ input ["Weight"]) ؛ الحد الأدنى = دولار أول ؛ ماكس دولار = أول دولار ؛ foreach ($ input as $ data) ($ weight = intval ($ data ["Weight"]) ؛ إذا (الوزن بالدولار<= $min) { $min = $weight ; } if($weight >$ max) ($ max = $ weight؛)) صدى الصوت "min = $ min و max = $ max \ n"؛

$ num = array (0 => array ("id" => "20110209172713"، "Date" => "2011-02-09"، "Weight" => "200")، 1 => array ("id" => "20110209172747"، "التاريخ" => "2011-02-09"، "الوزن" => "180")، 2 => مجموعة ("id" => "20110209172827"، "التاريخ" => "2011 -02-09 "،" Weight "=>" 175 ")، 3 => array (" id "=>" 20110211204433 "،" Date "=>" 2011-02-11 "،" Weight "=>" 195 ")) ؛ foreach ($ num as $ key => $ val) ($ weight = $ val ["Weight"] ؛) الحد الأقصى لصدى الصدى (الوزن بالدولار) ؛ صدى دقيقة (الوزن بالدولار) ؛

فيما يلي بعض الطرق إزالة عنصر من المصفوفة جافا سكريبت .

كل الطرق الموصوفة لا تغير المجموعة الأصليةوإنشاء واحدة جديدة بدلاً من ذلك.

إذا كنت تعرف فهرس العنصر

لنفترض أن لديك مصفوفة وتريد إزالة العنصر الموجود في الموضع i.

إحدى الطرق هي استخدام slice ():

عناصر const = ["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 () يخلق مجموعة جديدةمع المؤشرات التي يتلقاها. نقوم ببساطة بإنشاء مصفوفة جديدة - من البداية إلى الفهرس نريد إزالته ، وربط مصفوفة أخرى من الموضع الأول بعد الوضع الذي أزلناه إلى نهاية المصفوفة.

إذا كنت تعرف المعنى

في هذه الحالة واحد خيار جيد- استخدم عامل التصفية () الذي يقدم المزيد تصريحينهج:

عناصر const = ["a"، "b"، "c"، "d"، "e"، "f"] const valueToRemove = "c" const filterItems = items.filter (item => item! == valueToRemove) console.log (filteredItems)

يستخدم هذا وظائف سهم ES6. يمكنك استخدام الميزات التقليدية لدعم المتصفحات القديمة:

عناصر const = ["a" ، "b" ، "c" ، "d" ، "e" ، "f"] const valueToRemove = "c" const filterItems = items.filter (الوظيفة (العنصر) (إرجاع العنصر! = = valueToRemove)) console.log (filteredItems)

أو يمكنك استخدام Babel وتحويل كود ES6 مرة أخرى إلى ES5 لجعله أكثر قابلية للقراءة للمتصفحات القديمة ، ولكن اكتب JavaScript حديثًا في التعليمات البرمجية الخاصة بك.

حذف عدة عناصر

ماذا لو كنت تريد إزالة العديد من العناصر بدلاً من عنصر واحد؟

لنجد أبسط حل.

حسب الفهرس

يمكنك فقط إنشاء دالة وإزالة العناصر بالتتابع:

عناصر const = ["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"] وحدة التحكم. السجل (العناصر المفلترة)

بالقيمة

يمكنك البحث عن تضمين داخل وظيفة رد الاتصال:

عناصر const = ["a"، "b"، "c"، "d"، "e"، "f"] قيم ثابتةToRemove = ["c"، "d"] const filteredItems = items.filter (item => ! valueToRemove.includes (item)) // ["a"، "b"، "e"، "f"] console.log (filteredItems)

تجنب تحور المصفوفة الأصلية

splice () (يجب عدم الخلط بينه وبين slice ()) يغير المصفوفة الأصلية ويجب تجنبه.

لدي مصفوفة بهذا الشكل:

Array (=> Array (=> 117 => الشبكات => 16) => Array (=> 188 => FTP => 23) => صفيف (=> 189 => الإنترنت => 48))

ما إذا كان هناك ملف طريقة جيدةالحصول على الحد الأدنى والحد الأقصى لقيم "العد"؟ يمكنني القيام بذلك باستخدام حلقات متعددة ، لكنني اعتقدت أنه قد يكون هناك طريقة أفضل.

على عكس الآخرين ، لا يمكنك استخدام الدالتين min () / max () لهذه المشكلة ، لأن هذه الوظائف لا تفهم مصفوفات البيانات (المصفوفة) التي تم تمريرها إليها. تعمل هذه الوظائف فقط مع عناصر المصفوفة العددية.

بدء الصورة

السبب في أن استخدام min () و max () يبدو أنه يعطي الإجابة الصحيحة هو استخدام مصفوفات الكتابة إلى الأعداد الصحيحة ، وهو سلوك غير محدد:

لم يتم تعريف سلوك التحويل إلى عدد صحيح لأنواع أخرى. لا تعتمد على أي سلوك يمكن ملاحظته لأنه قد يتغير دون سابق إنذار.

كان بياني أعلاه حول الكتابة بالنوع خاطئًا. في الواقع ، يعمل min () و max () على المصفوفات ، لكن ليس كيف يحتاج OP منهم إلى العمل. عند استخدام min () و max () مع مصفوفات متعددة أو مصفوفة من عناصر المصفوفة ، تتم مقارنة العناصر بعنصر بعنصر من اليسار إلى اليمين:

$ val = min (مجموعة (2، 4، 8)، صفيف (2، 5، 1)) ؛ // array (2، 4، 8) / * * العنصر الأول مقارنة بالعنصر الأول: 2 == 2 * العنصر الثاني مقارنة بالعنصر الثاني: 4< 5 * first array is considered the min and is returned */

يُظهر OP المترجم إلى المشكلة لماذا يبدو أن استخدام min () و max () يعطي النتيجة الصحيحة مباشرة. العناصر الأولى من المصفوفة هي id ، لذا قارنها min () و max () أولاً ، مما يؤدي بالمناسبة إلى النتيجة الصحيحة لأن أدنى معرف هو الذي يحتوي على أقل عدد وأعلى معرف هو الذي يحتوي على أعلى عدد.

نهاية التحرير

الطريقة الصحيحة هي استخدام حلقة.

$ a = array (array ("id" => 117، "name" => "Networking"، "count" => 16)، صفيف ("id" => 188، "name" => "FTP"، " count "=> 23) ، صفيف (" id "=> 189 ،" name "=>" Internet "،" count "=> 48)) ؛ الحد الأدنى $ = PHP_INT_MAX ؛ ماكس $ = 0 ؛ foreach ($ a كـ $ i) ($ min = min ($ min، $ i ["count"]) ؛ $ max = max ($ max ، $ i ["count"]) ؛)

يمكنك استخدام الدالتين max () و min ().

ماذا فعلت بدورات متعددة؟ واحد يكفي 🙂

  1. احصل على العنصر الأول من خلال حساب كل من $ min و max
  2. كرر على الباقي ، قارن العداد مع كل $ min و $ max ، إذا كان أقل / أكبر ، قم بتعيين قيمة عدد جديدة

يمكنك استخدام دالات max / min لأنها ستعيد مصفوفة تحتوي على الحد الأقصى / الأدنى لكل فهرس. يجب أن يعرض المثال الخاص بك المصفوفة (189 ، "Networking" ، 48) للحد الأقصى. يمكنك بعد ذلك الحصول على النتيجة من تلك المجموعة.

تحديث هذا لا يعمل كما استبعدت. مثال صفحة الدليل مضلل ويعطي المثال النتيجة الصحيحة باستخدام max ، لكن هذه مجرد مصادفة.

يبدو أنه لا يمكنك استخدام max () على مصفوفة ثنائية الأبعاد. يقوم فقط بإرجاع أكبر مصفوفة ، وليس الحد الأقصى () لكل فهرس (كما هو مذكور في عدة إجابات).

العد بالدولار = مجموعة () ؛ foreach ($ arr as $ _arr) ($ count = $ _arr ["count"] ؛) var_dump (max ($ count)، min ($ count)) ؛

هل هناك معادل مدمجوظيفة لهذا؟ (حتى بدون إمكانية اختبارات)

/ *** استرداد عمود من مصفوفة ثنائية الأبعاد مع تحديد اختياري فوق عمود آخر * *param $ aArray لاسترداد اسم العمود المراد استرداده من *param $ aColName ، على سبيل المثال "O_NAME" *param $ aColTest (اختياري) اسم العمود المراد تشغيل الاختبار عليه ، على سبيل المثال. سلسلة "O_ID" *param $ aTest (اختياري) للاختبار على سبيل المثال. "> = 10"، "==" ". $ Toto." "" *return 1D المصفوفة مع العمود المستخرج للتو *access public * / function extractColFromArray ($ aArray، $ aColName، $ aColTest = ""، $ aTest = "") ($ mRes = array ()؛ foreach ($ aArray as $ row) (if (($ aColTest == "") || (Eval ("return". $ row [$ aColTest]. $ aTest. "؛"))) ($ mRes = $ row [$ aColName]؛)) إرجاع $ mRes؛) // extractColFromArray

المصفوفات هي إحدى الطرق المنظمة الملائمة لتخزين المعلومات. كل عنصر في مثل هذه المصفوفة له مكانه ومفتاحه وقيمته. يمكن أن تكون محتويات المصفوفات مختلفة ، مثل أساس الأرقام أو الأسماء أو القيم الرقمية البسيطة. عند الحديث عن رقم ، يمكننا مواجهة أنواع مختلفة من المهام ، على سبيل المثال ، اشتقاق القيمة القصوى أو الدنيا. اليوم سنتحدث عن كيفية حل هذا في لغات البرمجة المختلفة.

إيجاد أكبر وأصغر قيمة لمصفوفة أحادية البعد في PHP

تختلف كل المصفوفات في هيكلها. ضع في اعتبارك مصفوفتين بسيطتين أحادي البعد ، لا يحتوي أحدهما على مفاتيح:

$ my_array = مجموعة (22 ، 24 ، 37 ، 74 ، 23 ، 2 ، 10) ؛

وواحد مطابق للسابق ولكن بمفاتيح:

$ my_array = مجموعة (1 => 22 ، 2 => 24 ، 3 => 37 ، 4 => 74 ، 5 => 23 ، 6 => 2 ، 7 => 10) ؛

دعنا نحاول عرض الحد الأقصى والحد الأدنى لقيمة هذه المصفوفة. لهذا سوف نستخدم الميزات القياسية « الأعلى" و " دقيقة" على التوالى:

صدى ماكس ($ my_array) ؛ // إخراج 74 صدى دقيقة ($ my_array) ؛ // الإخراج 2

إذا نظرنا إلى المصفوفة الثانية بمزيد من التفصيل ، فنتيجة لذلك يمكننا الحصول على مفتاح القيم القصوى أو الدنيا.

على سبيل المثال من المصفوفة

$ my_array = مجموعة (1 => 22 ، 2 => 24 ، 3 => 37 ، 4 => 74 ، 5 => 23 ، 6 => 2 ، 7 => 10) ؛

سيبدو مثل هذا:

$ max = array_keys ($ my_array، max ($ my_array)) ؛ $ max = $ max ؛ // الحد الأقصى لمفتاح القيمة $ min = array_keys ($ my_array، min ($ my_array)) ؛ الحد الأدنى $ = $ min ؛ // مفتاح الحد الأدنى للقيمة echo $ max؛ // إخراج نتيجة القيمة القصوى

وفقًا لذلك ، مفتاح القيمة القصوى هو "4" ، ومفتاح القيمة الدنيا هو "6".

إيجاد أكبر وأصغر قيمة لمصفوفة متعددة الأبعاد في PHP

المصفوفات متعددة الأبعاد تختلف في تداخلها. على سبيل المثال ، قد تبدو المصفوفة ثنائية الأبعاد هكذا بدون المفاتيح:

$ my_array = مصفوفة (مصفوفة (22 ، 24 ، 37) ، صفيف (74 ، 23 ، 2) ، صفيف (10)) ؛

وبناءً عليه مع بعض المفاتيح:

$ my_array = صفيف (صفيف (1 => 22 ، 2 => 24 ، 3 => 37) ، صفيف (4 => 74 ، 5 => 23 ، 6 => 2) ، صفيف (7 => 10)) ؛

في هذه الحالة ، يكون العثور على القيم القصوى والدنيا أمرًا صعبًا بعض الشيء ، ولكنه حقيقي تمامًا.

أولاً ، لإيجاد الحد الأقصى والحد الأدنى هنا ، نقوم بتحويل المصفوفة إلى ذات بعد واحد:

$ out_array = مجموعة () ؛ foreach ($ my_array as $ sub_array) ($ out_array = array_merge ($ out_array، $ sub_array) ؛)

يعمل التصميم لكلا الخيارين أعلاه. وبعد ذلك ، باتباع مثال مصفوفة أحادية البعد ، سنعرض البيانات التي نحتاجها:

صدى ماكس ($ out_array) ؛ // إخراج 74 صدى دقيقة ($ out_array) ؛ // الإخراج 2

كمكافأة صغيرة ، سأقدم مثالاً على مصفوفة ثنائية الأبعاد شائعة أخرى:

$ my_array = array (array ("id" => "1"، "date" => "2018-03-19"، "price" => "5"،)، صفيف ("id" => "2" ، "date" => "2018-03-19"، "price" => "50"،)، صفيف ("id" => "3"، "date" => "2018-03-19"، " price "=>" 25 ")) ؛

من خلال الشعبية ، لا أعني المحتوى ، بل أعني مثالاً على بنيته. لنفترض أنك هنا تحتاج إلى عرض الحد الأقصى والحد الأدنى لقيم مفاتيح "السعر" فقط.

أول شيء تحتاجه في هذه الحالة هو الحصول على مصفوفة جديدة بهذه البيانات فقط:

الأرقام بالدولار = array_column ($ my_array ، "السعر") ؛

صدى دقيقة (أرقام $) ؛ // إخراج 5 صدى كحد أقصى (أرقام بالدولار) ؛ // إخراج 50

هذا يكمل العمل مع المصفوفات في PHP. إذا كانت بنية المصفوفة الخاصة بك مختلفة فجأة ولا تعرف كيفية معالجتها - اطرح السؤال المناسب في التعليقات ، سأحاول مساعدتك.

إيجاد أكبر وأصغر قيمة لمصفوفة أحادية البعد في JavaScript

على عكس PHP ، تكون المصفوفات أبسط بكثير في JavaScript ، وستبدو المصفوفة البسيطة أحادية البعد كما يلي:

var my_array = ؛

لم يتم تحديد الفهارس هنا. من أجل إيجاد القيمة العظمى والصغرى في هذه المصفوفة ، سنكتب اثنتين من وظائفنا البسيطة:

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 (أ ، ب) ؛)) ؛)

التي تُستخدم للعثور على القيم التي نحتاجها. الاستخدام بسيط أيضًا:

تنبيه (arrayMax (my_array)) ؛ // عرض تنبيه 74 (arrayMin (my_array)) ؛ // الإخراج 2

في هذه الحالة ، سيتم عرض الرقمين "2" و "74" على أنهما الحد الأدنى والحد الأقصى لقيم المصفوفة.

إيجاد أكبر وأصغر قيمة لمصفوفة متعددة الأبعاد في JavaScript

المصفوفات متعددة الأبعاد في JavaScript بسيطة للغاية ، وهي تبدو كما يلي:

var my_array = [،،] ؛

دعنا نحاول إيجاد الحد الأقصى والحد الأدنى هنا. بادئ ذي بدء ، سنقوم بكتابة دالة بمساعدتها ، وفقًا للمخطط المألوف لدينا بالفعل ، سنقوم بتمثيل هذه المصفوفة على أنها أحادية البعد:

var out_array = ؛ my_array.forEach (الوظيفة (v) (Array.prototype.push.apply (out_array، v)؛)) ؛

ومع الكائن رياضيات»احصل على القيم التي نحتاجها:

Varmin = Math.min.apply (فارغ ، out_array) ؛ // Get 2 var max = Math.max.apply (null، out_array) ؛ // احصل على 74 تنبيهًا (بحد أقصى) ؛ // عرض 74 على الشاشة

في الواقع ، بدلاً من الكائن " رياضيات"يمكنك استخدام وظائفنا المستخدمة في إصدار المصفوفة أحادية البعد ، ولكن حتى تفهم أن أي مشكلة يمكن حلها بعدة طرق - لقد قدمت هنا حلاً مختلفًا قليلاً.

حسنًا ، كالعادة ، مكافأة صغيرة. ضع في اعتبارك مصفوفة أخرى متعددة الأبعاد بالهيكل التالي:

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

كما نرى ، فإن القيم الرقمية في كل مصفوفة تأتي في المرتبة الثالثة. دعنا نكتب بعض الكود ونحصل على القيم المقابلة فقط من هذه البيانات:

فارمين = + إنفينيتي ؛ فار ماكس = - اللانهاية ؛ my_array.forEach (الوظيفة (العنصر) (إذا (+ العنصر< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >max) (max = + item ؛ // البحث عن القيمة القصوى))) ؛ تنبيه (min + "" + max) ؛ // عرض النتيجة على الشاشة

هذا كل شئ. لا تنس دعم المشروع. هناك الكثير من الأشياء الممتعة في انتظارك!