PHP একটি দ্বি-মাত্রিক অ্যাসোসিয়েটিভ অ্যারেতে সর্বনিম্ন এবং সর্বাধিক মানগুলি পান। ন্যূনতম - অ্যারের সর্বনিম্ন মানের সংখ্যার সাথে ক্ষুদ্রতম Php মান খুঁজে বের করে

(PHP 4, PHP 5, PHP 7)

মিনিট - ক্ষুদ্রতম মান খুঁজে পায়

বর্ণনা

যদি শুধুমাত্র একটি যুক্তি পাস করা হয় - সংখ্যার একটি অ্যারে, মিনিট()তাদের মধ্যে সবচেয়ে ছোট ফেরত দেয়। যদি প্রথম আর্গুমেন্টটি একটি পূর্ণসংখ্যা বা ভাসমান হয়, তাহলে কমপক্ষে আরও একটি থাকতে হবে। এই ক্ষেত্রে ফাংশন মিনিট()তাদের মধ্যে সবচেয়ে ছোট ফিরিয়ে দেবে।

মন্তব্য করুন:

স্ট্যান্ডার্ড তুলনা নিয়ম ব্যবহার করে বিভিন্ন ধরনের মান তুলনা করা হয়। উদাহরণস্বরূপ, একটি অ-সংখ্যাসূচক স্ট্রিং ( স্ট্রিং) একটি পূর্ণসংখ্যার সাথে তুলনা করা হবে ( পূর্ণসংখ্যা) যেন সমান 0 , কিন্তু বেশ কয়েকটি লাইন ( স্ট্রিং) বর্ণানুক্রমিকভাবে তুলনা করা হবে। রিটার্ন মান রূপান্তর ছাড়াই ভেরিয়েবলের আসল ধরন ধরে রাখবে।

মান ফেরত দিন

ফাংশন মিনিট()মানক তুলনা নিয়ম অনুযায়ী "সবচেয়ে ছোট" হিসেবে বিবেচিত প্যারামিটারের মান প্রদান করে। যদি বিভিন্ন ধরণের বেশ কয়েকটি মান একে অপরের সমান হয় (যেমন 0 এবং "abc"), তারপর প্রথমটি ফেরত দেওয়া হবে।

উদাহরণ

উদাহরণ #1 ব্যবহারের উদাহরণ মিনিট()

ইকো মিনিট (2, 3, 1, 6, 7); // ১
ইকো মিন (অ্যারে(2 , 4 , 5 )); // 2

// স্ট্রিং "হ্যালো", যখন int-এর সাথে তুলনা করা হয়, তখন 0 হিসাবে ধরা হয়
// যেহেতু উভয় মানই সমান, পরামিতির ক্রম ফলাফল নির্ধারণ করে
ইকো মিনিট (0, "হ্যালো"); // 0
ইকো মিন ("হ্যালো" , 0); // হ্যালো

// এখানে আমরা তুলনা করি -1< 0, поэтому -1 является наименьшим значением
ইকো মিন ("হ্যালো" , - 1); // -1

// বিভিন্ন দৈর্ঘ্যের অ্যারে তুলনা করার সময়, min ছোটটি ফেরত দেবে
$val = মিনিট (অ্যারে(2 , 2 , 2 ), অ্যারে(1 , 1 , 1 , 1 )); // অ্যারে(2, 2, 2)

// একই দৈর্ঘ্যের একাধিক অ্যারে বাম থেকে ডানে তুলনা করা হয়
// এই উদাহরণের জন্য: 2 == 2, কিন্তু 4< 5
$val = মিনিট (অ্যারে(2 , 4 , 8 ), অ্যারে(2 , 5 , 1 )); // অ্যারে(2, 4, 8)

// যদি একটি অ্যারে এবং একটি নন-অ্যারে তুলনা করা হয় তবে অ্যারেটি কখনই ফেরত দেওয়া হবে না
// যেহেতু অ্যারে অন্য সব মানের চেয়ে বড় বলে বিবেচিত হয়
$val = মিনিট ("স্ট্রিং" , অ্যারে(2 , 5 , 7 ), 42 ); //স্ট্রিং

// যদি একটি যুক্তি NULL বা বুলিয়ান হয় তবে এটি অন্যদের সাথে তুলনা করা হবে
// মিথ্যা নিয়ম ব্যবহার করে< TRUE, учитывая остальные типы аргументов
// প্রদত্ত উদাহরণে, -10 এবং 10 কে সত্য হিসাবে গণ্য করা হয়
$val = মিনিট (- 10 , FALSE , 10); // মিথ্যা
$val = মিনিট (- 10 , NULL , 10); // খালি

// অন্যদিকে, 0 কে মিথ্যা হিসাবে গণ্য করা হয়, তাই এটি সত্যের চেয়ে "কম"
$val = মিনিট(0, সত্য); // 0
?>

তথ্য সঞ্চয় করার সুবিধাজনক কাঠামোগত উপায়গুলির মধ্যে একটি হল অ্যারে। এই ধরনের অ্যারের প্রতিটি উপাদানের নিজস্ব জায়গা, নিজস্ব কী এবং মান রয়েছে। অ্যারের বিষয়বস্তু ভিন্ন হতে পারে, যেমন, উদাহরণস্বরূপ, সংখ্যা, নাম, বা সাধারণ সাংখ্যিক মানগুলির একটি ডাটাবেস। সংখ্যার কথা বলতে গেলে, আমরা বিভিন্ন ধরণের কাজের মুখোমুখি হতে পারি, উদাহরণস্বরূপ, সর্বাধিক বা সর্বনিম্ন মান হ্রাস করা। আজকে আমরা বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজে এটি কিভাবে সমাধান করা হয় তা নিয়ে কথা বলব।

পিএইচপি-তে এক-মাত্রিক অ্যারের সবচেয়ে বড় এবং ক্ষুদ্রতম মান খুঁজে বের করা

সমস্ত অ্যারে তাদের গঠন ভিন্ন. দুটি সাধারণ এক-মাত্রিক অ্যারে বিবেচনা করুন, যার একটিতে কী নেই:

$my_array = অ্যারে(22, 24, 37, 74, 23, 2, 10);

এবং আগেরটির সাথে একটি অভিন্ন, কিন্তু কী সহ:

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

আসুন এই অ্যারের সর্বোচ্চ এবং সর্বনিম্ন মান প্রদর্শন করার চেষ্টা করি। এটি করার জন্য, আমরা স্ট্যান্ডার্ড ফাংশন ব্যবহার করব " সর্বোচ্চ" এবং " মিনিট"যথাক্রমে:

ইকো ম্যাক্স($my_array); // প্রিন্ট 74 echo min($my_array); // প্রিন্ট 2

যদি আমরা দ্বিতীয় অ্যারেটি ঘনিষ্ঠভাবে দেখি, তাহলে ফলস্বরূপ আমরা সর্বাধিক বা সর্বনিম্ন মানগুলির কী পেতে পারি।

একটি উদাহরণ হিসাবে একটি অ্যারে ব্যবহার করে

$my_array = 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)); $মিন = $মিন; // সর্বনিম্ন মান কী প্রতিধ্বনি $max; // সর্বোচ্চ মানের ফলাফল প্রিন্ট করুন

তদনুসারে, সর্বাধিক মান কী হল "4", এবং সর্বনিম্ন মান হল "6"।

PHP-তে বহুমাত্রিক অ্যারের সবচেয়ে বড় এবং ক্ষুদ্রতম মান খুঁজে বের করা

বহুমাত্রিক অ্যারেগুলি তাদের নেস্টিং দ্বারা আলাদা করা হয়। উদাহরণস্বরূপ, একটি দ্বি-মাত্রিক অ্যারে কী ছাড়াই দেখতে এরকম হবে:

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

এবং, সেই অনুযায়ী, নির্দিষ্ট কীগুলির সাথে:

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

এই ক্ষেত্রে, সর্বোচ্চ এবং সর্বনিম্ন মান খুঁজে পাওয়া একটু কঠিন, কিন্তু সম্ভব।

প্রথমত, এখানে সর্বোচ্চ এবং সর্বনিম্ন খুঁজে বের করার জন্য, আমরা অ্যারেটিকে এক-মাত্রিক এক-এ রূপান্তর করি:

$out_array = array(); foreach($my_array $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", array ("id" => "2" , "তারিখ" => "2018-03-19", "মূল্য" => "50", অ্যারে ("id" => "3", "তারিখ" => "2018-03-19", " মূল্য" => "25",));

জনপ্রিয়তা দ্বারা আমি বিষয়বস্তু বোঝাতে চাই না, তবে এর কাঠামোর একটি উদাহরণ। ধরা যাক যে এখানে আপনাকে শুধুমাত্র "মূল্য" কীগুলির সর্বাধিক এবং সর্বনিম্ন মানগুলি আউটপুট করতে হবে।

এই ক্ষেত্রে আপনার প্রথম জিনিসটি শুধুমাত্র এই ডেটা সহ একটি নতুন অ্যারে পেতে হবে:

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

ইকো মিন ($সংখ্যা); // প্রিন্ট 5 ইকো ম্যাক্স ($ সংখ্যা); // প্রিন্ট 50

এটি পিএইচপি-তে অ্যারেগুলির সাথে কাজটি সম্পূর্ণ করে। যদি হঠাৎ করে আপনার অ্যারের গঠন ভিন্ন হয় এবং আপনি কীভাবে এটি প্রক্রিয়া করতে জানেন না, মন্তব্যে উপযুক্ত প্রশ্ন জিজ্ঞাসা করুন, আমি আপনাকে সাহায্য করার চেষ্টা করব।

জাভাস্ক্রিপ্টে এক-মাত্রিক অ্যারের সবচেয়ে বড় এবং ক্ষুদ্রতম মান খোঁজা

পিএইচপি থেকে ভিন্ন, জাভাস্ক্রিপ্টে অ্যারের ধরন অনেক সহজ এবং একটি সাধারণ এক-মাত্রিক অ্যারে দেখতে এইরকম হবে:

Var my_array = ;

কোন সূচী এখানে নির্দেশিত. এই অ্যারেতে সর্বাধিক এবং সর্বনিম্ন মান খুঁজে বের করার জন্য, আমরা আমাদের নিজস্ব দুটি সাধারণ ফাংশন লিখব:

ফাংশন অ্যারেম্যাক্স(অ্যারে) ( রিটার্ন অ্যারে.রিডুস (ফাংশন(এ, বি) ( রিটার্ন ম্যাথ. ম্যাক্স (এ, বি); )); ) ফাংশন অ্যারেমিন(অ্যারে) ( রিটার্ন অ্যারে.রিডুস রিটার্ন Math.min(a, b); ));)

যা আমাদের প্রয়োজনীয় মান খুঁজে পেতে ব্যবহৃত হয়। ব্যবহার এছাড়াও সহজ:

সতর্কতা(arrayMax(my_array)); // প্রিন্ট 74 সতর্কতা(অ্যারেমিন(মাই_অ্যারে)); // প্রিন্ট 2

এই ক্ষেত্রে, "2" এবং "74" নম্বরগুলি অ্যারের সর্বনিম্ন এবং সর্বাধিক মান হিসাবে স্ক্রিনে প্রদর্শিত হবে।

জাভাস্ক্রিপ্টে একটি বহুমাত্রিক অ্যারের বৃহত্তম এবং ক্ষুদ্রতম মান খোঁজা৷

জাভাস্ক্রিপ্টে মাল্টিডাইমেনশনাল অ্যারেগুলি ঠিক ততটাই সহজ এবং সেগুলি দেখতে এইরকম:

Var my_array = [ , , ];

আসুন এখানে সর্বাধিক এবং সর্বনিম্ন খুঁজে বের করার চেষ্টা করি। শুরুতে, আমরা একটি ফাংশন লিখব যার সাথে, আমরা ইতিমধ্যে পরিচিত স্কিম অনুযায়ী, আমরা এই অ্যারেটিকে এক-মাত্রিক হিসাবে উপস্থাপন করব:

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

এবং বস্তু ব্যবহার করে " গণিত"আমরা আমাদের প্রয়োজনীয় মানগুলি পাই:

Var min = Math.min.apply(null, out_array); // 2 var max পান = Math.max.apply(null, out_array); // 74 সতর্কতা পান (সর্বোচ্চ); // স্ক্রিনে 74 প্রিন্ট করুন

আসলে, বস্তুর পরিবর্তে " গণিত“আপনি সংস্করণে ব্যবহৃত আমাদের ফাংশনগুলি এক-মাত্রিক অ্যারের সাথে ব্যবহার করতে পারেন, কিন্তু যাতে আপনি বুঝতে পারেন যে কোনও সমস্যা বিভিন্ন উপায়ে সমাধান করা যেতে পারে - এখানে আমি একটি সামান্য ভিন্ন সমাধান দিয়েছি।

ওয়েল, ঐতিহ্য অনুযায়ী - একটি ছোট বোনাস. আসুন নিম্নলিখিত কাঠামো সহ আরেকটি বহুমাত্রিক অ্যারে বিবেচনা করি:

Var my_array = [["এক", "2018-03-19", 5], ["দুই", "2018-03-19", 50], ["তিন", "2018-03-19", 25 ],];

আমরা দেখতে পাচ্ছি, প্রতিটি অ্যারের সাংখ্যিক মান তৃতীয় স্থানে রয়েছে। আসুন কিছু কোড লিখি এবং শুধুমাত্র এই ডেটা থেকে সংশ্লিষ্ট মানগুলি পাই:

Var min = +Infinity; var সর্বোচ্চ = -অনন্ত; my_array.forEach(function(item) ( if(+item)< min) { min =+ item; // Ищем минимальное значение } }); my_array.forEach(function(item) { if(+item >সর্বোচ্চ) ( সর্বোচ্চ =+ আইটেম; // সর্বোচ্চ মান খুঁজছেন) )); সতর্কতা (মিনিট+" "+সর্বোচ্চ); // স্ক্রীনে ফলাফল প্রদর্শন করুন

এখানেই শেষ. প্রকল্প সমর্থন করতে ভুলবেন না. অনেক আকর্ষণীয় জিনিস আপনার সামনে অপেক্ষা করছে!

আমার এই বিন্যাসে একটি অ্যারে আছে:

অ্যারে ( => অ্যারে ( => 117 => নেটওয়ার্কিং => 16) => অ্যারে ( => 188 => FTP => 23) => অ্যারে ( => 189 => ইন্টারনেট => 48))

"গণনা" এর সর্বনিম্ন এবং সর্বাধিক মানগুলি পাওয়ার একটি ভাল উপায় আছে কি? আমি একাধিক লুপ ব্যবহার করে এটি করতে পারি, কিন্তু আমি ভেবেছিলাম একটি ভাল উপায় হতে পারে।

অন্যদের থেকে ভিন্ন, আপনি এই সমস্যার জন্য min() / max() ফাংশন ব্যবহার করতে পারবেন না, কারণ এই ফাংশনগুলি তাদের কাছে পাঠানো ডেটা (অ্যারে) এর অ্যারে বুঝতে পারে না। এই ফাংশনগুলি শুধুমাত্র স্কেলার অ্যারে উপাদানগুলির জন্য কাজ করে।

ছবি শুরু করুন

min() এবং max() ব্যবহার করে সঠিক উত্তর দেওয়ার কারণ হল অ্যারেগুলি পূর্ণসংখ্যাগুলিতে টাইপ-কাস্টিং করা হয়, যা অনির্ধারিত আচরণ:

পূর্ণসংখ্যা রূপান্তর আচরণ অন্যান্য ধরনের জন্য সংজ্ঞায়িত করা হয় না. কোনো পর্যবেক্ষিত আচরণের উপর নির্ভর করবেন না কারণ এটি সতর্কতা ছাড়াই পরিবর্তিত হতে পারে।

টাইপ-কাস্টিং সম্পর্কে উপরে আমার বক্তব্য ভুল ছিল। প্রকৃতপক্ষে min() এবং max() অ্যারেগুলির সাথে কাজ করে, কিন্তু OP-এর যেভাবে কাজ করার প্রয়োজন হয় সেভাবে নয়। একাধিক অ্যারে বা অ্যারের উপাদানগুলির একটি অ্যারের সাথে min() এবং max() ব্যবহার করার সময়, বাম থেকে ডানে উপাদানের উপাদানগুলির সাথে তুলনা করুন:

$val = মিনিট(অ্যারে(2, 4, 8), অ্যারে(2, 5, 1)); // অ্যারে(2, 4, 8) /* * প্রথম উপাদানের তুলনায় প্রথম উপাদান: 2 == 2 * দ্বিতীয় উপাদান দ্বিতীয় উপাদানের তুলনায়: 4< 5 * first array is considered the min and is returned */

সমস্যাটিতে অনুবাদ করা হয়েছে, OP দেখায় কেন সরাসরি min() এবং max() ব্যবহার করলে সঠিক ফলাফল পাওয়া যায়। অ্যারের প্রথম উপাদানগুলি হল id , তাই min() এবং max() প্রথমে তাদের তুলনা করুন, যাইহোক, সঠিক ফলাফলের দিকে নিয়ে যান, কারণ সর্বনিম্ন আইডিটি হল সবচেয়ে কম গণনা এবং সর্বোচ্চ আইডি হল একটি যার সংখ্যা সর্বোচ্চ।

সম্পাদনা শেষ করুন

সঠিক উপায় একটি লুপ ব্যবহার করা হয়.

$a = array("id" => 117, "name" => "Networking", "count" => 16), array("id" => 188, "name" => "FTP", " count" => 23), অ্যারে("id" => 189, "name" => "Internet", "count" => 48)); $মিন = PHP_INT_MAX; $max = 0; foreach ($a হিসাবে $i) ( $min = min($min, $i["count"]); $max = max($max, $i["count"]); )

আপনি max() এবং min() ফাংশন ব্যবহার করতে পারেন।

আপনি একাধিক loops সঙ্গে কি করেছেন? একজনই যথেষ্ট :)

  1. $মিন এবং সর্বোচ্চ উভয়ের গণনা গণনা করে প্রথম উপাদানটি পান৷
  2. বাকিগুলির উপর পুনরাবৃত্তি করুন, প্রতিটি $মিন এবং $সর্বোচ্চের সাথে গণনার তুলনা করুন, যদি কম/বৃহত্তর একটি নতুন গণনার মান নির্ধারণ করুন

আপনি সর্বাধিক/মিনিট ফাংশনগুলি ব্যবহার করতে পারেন কারণ তারা প্রতিটি সূচকের সর্বোচ্চ/সর্বনিম্ন সমন্বিত একটি অ্যারে ফিরিয়ে দেবে। আপনার উদাহরণটি সর্বোচ্চ এর জন্য অ্যারে (189, "নেটওয়ার্কিং", 48) ফেরত দিতে হবে। আপনি তারপর এই অ্যারে থেকে স্কোর দখল করতে পারেন.

এটি আপডেট করা কাজ করে না যেমন আমি বাতিল করেছি। ম্যান পৃষ্ঠার উদাহরণটি বিভ্রান্তিকর এবং উদাহরণটি সর্বোচ্চ ব্যবহার করে সঠিক ফলাফল দেয়, তবে এটি কেবল একটি কাকতালীয়।

দেখে মনে হচ্ছে আপনি 2D অ্যারেতে max() ব্যবহার করতে পারবেন না। এটি প্রতিটি সূচকের সর্বাধিক() পরিবর্তে সবচেয়ে বড় অ্যারে প্রদান করে (যেমন বেশ কয়েকটি উত্তরে বলা হয়েছে)।

$count = অ্যারে(); foreach($arr হিসাবে $_arr) ( $count = $_arr["count"]; ) var_dump(max($count), min($count));

একটি সমতুল্য আছে অন্তর্নির্মিতএই জন্য ফাংশন? (এমনকি সম্ভাবনা ছাড়া পরীক্ষামূলক)

/** * একটি 2D অ্যারে থেকে একটি কলাম পুনরুদ্ধার করে অন্য একটি কলামের উপর একটি ঐচ্ছিক নির্বাচন সহ * @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 = অ্যারে()); foreach ($aArray $row হিসাবে) ( যদি (($aColTest == "") || (eval("রিটার্ন"। $row[$aColTest]। $ পরীক্ষা করুন৷