اینترنت پنجره ها اندروید

پی اچ پی حداکثر مقدار را در آرایه پیدا کنید. پی اچ پی دریافت حداقل و حداکثر مقادیر در یک آرایه همسایه دو بعدی

(PHP 4، پی اچ پی 5، پی اچ پی 7)

دقیقه - کوچکترین ارزش را پیدا می کند

شرح

اگر تنها یک به عنوان استدلال منتقل می شود - یک آرایه از اعداد، دقیقه () کوچکترین آنها را باز می گرداند. اگر اولین استدلال عدد صحیح یا شناور باشد، باید حداقل یک نفر باشد. در این مورد، عملکرد دقیقه () کوچکترین آنها را بازگردانید

اظهار نظر:

مقادیر انواع مختلف با استفاده از قوانین مقایسه استاندارد مقایسه می شود. به عنوان مثال، یک رشته عددی نیست ( رشته) با یک عدد صحیح مقایسه می شود ( عدد صحیح) همانطور که برابر است 0 ، اما چند خط ( رشته) مقایسه حروف الفبا. مقدار بازگشت نوع اولیه متغیر را بدون تبدیل ذخیره می کند.

مقادیر بازگشت

تابع دقیقه () مقدار پارامتر را که "کوچکترین" در نظر گرفته شده است، بر اساس قوانین مقایسه استاندارد می پردازد. اگر مقادیر متعددی از انواع مختلف برابر با یکدیگر باشند (I.E. 0 و "ABC") اولین بار بازگردانده می شود.

مثال ها

مثال # 1 مثال استفاده دقیقه ()

اکو مین (2، 3، 1، 6، 7)؛ // یکی
اکو مین (آرایه (2، 4، 5))؛ // 2

// رشته "سلام"، زمانی که در مقایسه با int، به عنوان 0 در نظر گرفته می شود
// از آنجا که هر دو مقدار برابر هستند، ترتیب پارامترها نتیجه را تعیین می کند
اکو مین (0، "سلام")؛ // 0
اکو مین ("سلام"، 0)؛ // سلام.

// اینجا ما مقایسه می کنیم -1< 0, поэтому -1 является наименьшим значением
اکو مین ("سلام"، - 1)؛ // -one

// هنگام مقایسه آرایه های مختلف، دقیقه کمتر طول خواهد کشید
$ val \u003d min (آرایه (2، 2، 2)، آرایه (1، 1، 1، 1))؛ // آرایه (2، 2، 2)

// چندین آرایه از همان طول از چپ به راست مقایسه می شود
// برای این مثال: 2 \u003d\u003d 2، اما 4< 5
$ val \u003d min (آرایه (2، 4، 8)، آرایه (2، 5، 1))؛ // آرایه (2، 4، 8)

// اگر آرایه و غیر آرایه مقایسه شود، سپس آرایه هرگز بازگردانده نخواهد شد
// از آنجا که آرایه ها از همه ارزش های دیگر به شمار می روند
$ val \u003d min ("رشته"، آرایه (2، 5، 7)، 42)؛ // رشته

// اگر یک استدلال null یا boolean باشد، آن را با بقیه مقایسه خواهد کرد
// با استفاده از قانون دروغین< TRUE, учитывая остальные типы аргументов
// در مثال -10 و 10 مورد توجه قرار می گیرند
$ val \u003d min (- 10، false، 10)؛ // false
$ val \u003d min (- 10، null، 10)؛ // خالی.

// از سوی دیگر، 0 به عنوان نادرست محسوب می شود، بنابراین "کمتر" از درست است
$ val \u003d min (0، true)؛ // 0
?>

من یک آرایه در این فرمت دارم:

آرایه (\u003d\u003e آرایه (\u003d\u003e 117 \u003d\u003e networking \u003d\u003e 16) \u003d\u003e آرایه (\u003d\u003e 188 \u003d\u003e ftp \u003d\u003e 23) \u003d\u003e آرایه (\u003d\u003e 189 \u003d\u003e اینترنت \u003d\u003e 48))

آیا راه خوبی برای به دست آوردن حداقل و حداکثر مقدار "شمارش" وجود دارد؟ من می توانم آن را با استفاده از چند چرخه انجام دهم، اما فکر کردم این می تواند بهترین راه باشد.

بر خلاف دیگران، شما نمی توانید از توابع min () / max () برای این مشکل استفاده کنید، زیرا این توابع، آرایه های داده ای را که در آنها منتقل می شوند را درک نمی کنند (آرایه). این توابع تنها برای عناصر اسکالر آرایه عمل می کنند.

شروع تصویر

دلیل استفاده از Min () و Max () ظاهرا پاسخ صحیح را می دهد، متعلق به آرایه های نوع ریخته گری به عدد صحیح است که رفتار نامطمئن هستند:

رفتار تبدیل integer برای انواع دیگر تعریف نشده است. به هیچ رفتار مشاهده نشده تکیه نکنید، زیرا ممکن است بدون هشدار تغییر کند.

بیانیه من در مورد نوع ریخته گری اشتباه بود. در واقع، Min () و Max () با آرایه ها کار می کنند، اما نه اینکه چگونه به کار خود نیاز دارد. هنگام استفاده از min () و max () با چند آرایه یا آرایه ای از آرایه ها، عناصر با عنصر از چپ به راست مقایسه می شوند:

$ val \u003d min (آرایه (2، 4، 8)، آرایه (2، 5، 1))؛ // آرایه (2، 4، 8) / * * عنصر اول در مقایسه با عنصر اول: 2 \u003d\u003d 2 * عنصر دوم در مقایسه با عنصر دوم: 4< 5 * first array is considered the min and is returned */

OP ترجمه شده به مشکل نشان می دهد که چرا استفاده مستقیم از min () و max () به نظر می رسد نتیجه صحیح را ارائه می دهد. اولین عناصر آرایه ID هستند، بنابراین min () و max () ابتدا آنها را مقایسه می کنند، به هر حال، منجر به نتیجه صحیح می شود، زیرا پایین ترین شناسه کسی است که دارای کمترین تعداد است و بالاترین شناسه آن است این بالاترین تعداد ممکن را دارد.

پایان ویرایش

راه صحیح استفاده از چرخه است.

$ a \u003d آرایه (آرایه ("id" \u003d\u003e 117، "نام" \u003d\u003e "شبکه"، "count" \u003d\u003e 16)، آرایه ("id" \u003d\u003e 188، "نام" \u003d\u003e "ftp"، " تعداد "\u003d\u003e 23)، آرایه (" id "\u003d\u003e 189،" نام "\u003d\u003e" اینترنت "،" count "\u003d\u003e 48))؛ $ min \u003d php_int_max؛ $ max \u003d 0؛ foreach ($ a به عنوان $ I) ($ min \u003d min ($ min، $ من ["count"])؛ $ max \u003d max ($ max، $ من ["count"])؛)

شما می توانید از توابع max () و min () استفاده کنید.

با چند چرخه چه کار کردید؟ یکی کاملا کافی است 🙂

  1. اولین عنصر را با محاسبه حساب کاربری هر دو $ min و max دریافت کنید
  2. تکرار برای بقیه، مقایسه متر با هر $ min و $ max، اگر کمتر / بیشتر، مقدار حساب جدید را اختصاص دهید

شما می توانید از توابع Max / Min استفاده کنید، زیرا آنها یک آرایه حاوی حداکثر / حداقل هر شاخص را باز می گردانند. مثال شما باید آرایه (189، "شبکه"، 48) را برای حداکثر بازگرداند. سپس شما می توانید حساب را از این آرایه ضبط کنید.

به روز رسانی این کار را انجام نمی دهد، همانطور که من از مطالعه خارج شدم. یک نمونه از یک صفحه مرجع گمراه کننده است، و مثال نتیجه درست را با استفاده از حداکثر می دهد، اما این فقط یک تصادف است.

به نظر می رسد که شما نمیتوانید حداکثر () را برای یک آرایه 2D استفاده کنید. این به سادگی بزرگترین آرایه را باز می کند، نه حداکثر () هر شاخص (همانطور که در چند پاسخ نشان داده شده است).

$ count \u003d آرایه ()؛ foreach ($ ARR AS $ _arr) ($ count \u003d $ _ar ["count"]؛) var_dump (حداکثر ($ count)، min ($ count))؛

معادل آن وجود دارد ساخته شده در تابع برای این؟ (حتی بدون امکان آزمایش کردن)

/ ** * ستون از یک آرایه 2D را با یک انتخاب اختیاری بر روی ستون دیگری استخراج کنید * * * param $ آرایه آرایه ای برای استخراج از * param $ acolname ستون نام ستون برای استخراج، به عنوان مثال. "o_name" * param $ acoltest (اختیاری) نام ستون برای انجام یک آزمون، به عنوان مثال. "O_ID" * param $ ATest (اختیاری) رشته برای آزمون سابق. "\u003e \u003d 10"، "\u003d\u003d". "$ toto." "* return 1d آرایه با تنها ستون استخراج شده * @ access persmanity * / تابع extractcolfromarray ($ aarray، $ acolname، $ acoltest \u003d" "، $ ATETT \u003d "") ($ mRES \u003d array ()؛ foreach ($ aarray به عنوان $ ردیف) (اگر ($ acoltest \u003d\u003d ") || (eval (" بازگشت ". $ ردیف [$ acoltest]. $ ATest . "؛"))) ($ MRES \u003d $ ردیف [$ acolname]؛)) بازگشت $ MRES؛) // extractcolfromarray

آرایه ها یکی از روش های ذخیره سازی مناسب ساختاری اطلاعات هستند. هر عنصر چنین آرایه دارای مکان خاص خود، کلید و ارزش خود است. محتوای آرایه ها ممکن است متفاوت باشد، به عنوان مثال، پایه اعداد، نام ها یا مقادیر عددی ساده. صحبت کردن در مورد تعداد، ما می توانیم به تمام انواع وظایف، به عنوان مثال، خروجی حداکثر یا حداقل مقدار. در مورد چگونگی این در زبان های مختلف برنامه نویسی، امروز و بحث خواهد شد.

ما بزرگترین و کوچکترین ارزش یک آرایه یک بعدی در PHP را پیدا می کنیم

تمام آرایه ها در ساختار آنها متفاوت هستند. دو آرایه ساده یک بعدی را در نظر بگیرید، یکی از آنها حاوی کلید نیست:

$ my_array \u003d آرایه (22، 24، 37، 74، 23، 2، 10)؛

و یکسان یکسان با قبلی، اما در حال حاضر با کلیدها:

$ my_array \u003d آرایه (1 \u003d\u003e 22، 2 \u003d\u003e 24، 3 \u003d\u003e 37، 4 \u003d\u003e 74، 5 \u003d\u003e 23، 6 \u003d\u003e 2، 7 \u003d\u003e 10)؛

ما سعی خواهیم کرد حداکثر و حداقل مقدار این آرایه را حذف کنیم. برای انجام این کار، ما از توابع استاندارد استفاده خواهیم کرد " مکس"و" دقیقه"به ترتیب:

Echo Max ($ my_array)؛ // برداشت 74 echo min ($ my_array)؛ // برداشت 2

اگر ما در جزئیات بیشتر آرایه دوم را در نظر بگیریم، سپس می توانیم کلید حداکثر یا حداقل مقدار را دریافت کنیم.

در مثال آرایه

$ my_array \u003d آرایه (1 \u003d\u003e 22، 2 \u003d\u003e 24، 3 \u003d\u003e 37، 4 \u003d\u003e 74، 5 \u003d\u003e 23، 6 \u003d\u003e 2، 7 \u003d\u003e 10)؛

شبیه این خواهد شد:

$ max \u003d array_keys ($ my_array، max ($ my_array))؛ $ max \u003d $ max؛ // حداکثر مقدار $ min \u003d array_keys ($ my_array، min ($ my_array))؛ $ min \u003d $ min؛ // کلید حداقل مقدار echo $ max؛ // نتیجه حداکثر مقدار را برداشت

بر این اساس، کلید حداکثر مقدار "4" و حداقل - "6" است.

ما بزرگترین و کوچکترین اهمیت آرایه چند بعدی در پی اچ پی را پیدا می کنیم

آرایه های چند بعدی توسط لانه سازی آنها مشخص می شود. به عنوان مثال، یک آرایه دو بعدی به نظر می رسد به شرح زیر است:

$ my_array \u003d آرایه (آرایه (22، 24، 37)، آرایه (74، 23، 2)، آرایه (10))؛

و، بر این اساس، با برخی از کلیدها:

$ my_array \u003d آرایه (آرایه (1 \u003d\u003e 22، 2 \u003d\u003e 24، 3 \u003d 37)، آرایه (4 \u003d\u003e 74، 5 \u003d\u003e 23، 6 \u003d\u003e 2)، آرایه (7 \u003d\u003e 10))؛

در این مورد، پیدا کردن حداکثر و حداقل مقادیر کمی دشوار است، اما همچنین واقعا.

برای شروع، برای پیدا کردن حداکثر و حداقل در اینجا، ما یک آرایه را به یک بعدی تبدیل می کنیم:

$ out_array \u003d آرایه ()؛ foreach ($ my_array به عنوان $ sub_array) ($ out_array \u003d array_merge ($ out_array، $ sub_array)؛)

طراحی برای هر دو گزینه در بالا کار می کند. و علاوه بر این، پس از نمونه ای از یک آرایه یک بعدی، اطلاعاتی را که ما نیاز داریم برداشت کنیم:

Echo Max ($ out_array)؛ // برداشت 74 Echo Min ($ out_array)؛ // برداشت 2

به عنوان یک جایزه کوچک، من یک نمونه از یکی دیگر از آرایه های دو بعدی محبوب را ارائه می دهم:

$ my_array \u003d آرایه (آرایه (id "\u003d\u003e" 1 "،" تاریخ "\u003d\u003e" 2018-03-19 "،" قیمت "\u003d\u003e" 5 "،)، آرایه (" id "\u003d\u003e" 2 " ، "تاریخ" \u003d\u003e "2018-03-19"، "قیمت" \u003d\u003e "50"،)، آرایه ("id" \u003d\u003e "3"، "تاریخ" \u003d\u003e "2018-03-19"، " قیمت "\u003d\u003e" 25 "،))؛

قبل از محبوبیت، منظورم محتوای نیست، بلکه نمونه ای از ساختار آن است. فرض کنید که در اینجا شما نیاز به ایجاد خروجی حداکثر و حداقل مقدار تنها کلید "قیمت".

اولین چیزی که شما در این مورد نیاز دارید این است که یک آرایه جدید فقط با این داده ها دریافت کنید:

$ numbers \u003d array_column ($ my_array، "قیمت")؛

اکو مین ($ اعداد)؛ // برداشت 5 Echo Max ($ شماره)؛ // برداشت 50

در این مورد، کار با آرایه های پی اچ پی به پایان رسید. اگر ناگهان ساختار آرایه شما متفاوت است و شما نمی دانید که چگونه آن را پردازش کنید - از سؤال مناسب در نظرات بپرسید، سعی خواهم کرد به شما کمک کنم.

ما بزرگترین و کوچکترین ارزش یک آرایه یک بعدی را در جاوا اسکریپت پیدا می کنیم

بر خلاف پی اچ پی، در جاوا اسکریپت، نوع آرایه ها بسیار ساده تر است و یک آرایه ساده یک بعدی به نظر می رسد:

var my_array \u003d؛

شاخص ها در اینجا مشخص نشده اند. به منظور پیدا کردن حداکثر و حداقل مقدار در این آرایه، دو ویژگی ساده خود را بنویسید:

تابع arraymax (بازگشت array.reduce (بازگشت math.max (a، b)؛))؛) تابع arraymin (array) (array بازگشت) (تابع (a، b) (بازگشت math.min (a، b)؛ ))))

که برای پیدا کردن مقادیری که ما نیاز داریم استفاده می شود. استفاده نیز ساده است:

هشدار (ArrayMax (my_array))؛ // اخطار 74 هشدار (Arraymin (my_array))؛ // برداشت 2

در این مورد، شماره "2" و "74" به عنوان حداقل و حداکثر مقدار آرایه بر روی صفحه نمایش نمایش داده می شود.

ما بزرگترین و کوچکترین معنی آرایه چند بعدی را در جاوا اسکریپت پیدا می کنیم

آرایه های چند بعدی در جاوا اسکریپت ساده هستند و به نظر می رسند:

var my_array \u003d [،،،،]؛

بیایید سعی کنیم حداکثر و حداقل در اینجا پیدا کنیم. برای شروع، ما یک تابع را خواهیم نوشت که این طرح معمولا این آرایه را به عنوان یک طرح آشنا به عنوان یک بعدی معرفی می کند:

var out_array \u003d؛ my_array.foreach (تابع (v) (array.prototype.push.apply (out_array، v)؛))؛

و با کمک جسم " ریاضی."ما ارزش هایی را که نیاز داریم دریافت می کنیم:

var min \u003d math.min.Apply (null، out_array)؛ // ما 2 var max \u003d math.max.apply (null، out_array) را به دست می آوریم؛ // دریافت 74 هشدار (حداکثر)؛ // برداشت 74 بر روی صفحه نمایش

در واقع، به جای شی " ریاضی."شما می توانید از توابع ما استفاده شده در یک گزینه با یک آرایه یک بعدی استفاده کنید، اما شما می دانید که هر کار را می توان به چندین روش حل کرد - در اینجا من یک راه حل متفاوت را به ارمغان آورد.

خوب، طبق سنت، یک جایزه کوچک. یکی دیگر از آرایه های چند بعدی را با چنین ساختاری در نظر بگیرید:

var my_array \u003d [["یکی"، "2018-03-19"، 5]، ["دو"، "2018-03-19"، 50]، ["سه"، "2018-03-19"، 25 ]،]؛

همانطور که می بینیم، مقادیر عددی در هر آرایه در رتبه سوم قرار دارند. بیایید کد را بنویسیم و مقادیر مناسب این داده ها را بدست آورید:

var min \u003d + infinity؛ var max \u003d -infinity؛ my_array.foreach (تابع (مورد) (اگر (+ مورد< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item > MAX) (حداکثر \u003d + مورد؛ // ما به دنبال حداکثر مقدار)))؛ هشدار (حداقل + "+ حداکثر)؛ // نمایش نتیجه روی صفحه نمایش

این همه است فراموش نکنید که از پروژه حمایت کنید. پیش از شما در انتظار بسیاری از چیزهای جالب است!