উত্তর:
খড়ের খড়ি দিয়ে লক্ষ্যগুলি ছেদ করুন এবং নিশ্চিত করুন যে ছেদটি লক্ষ্যবস্তুগুলির সাথে যথাযথভাবে সমান:
$haystack = array(...);
$target = array('foo', 'bar');
if(count(array_intersect($haystack, $target)) == count($target)){
// all of $target is in $haystack
}
মনে রাখবেন আপনি শুধুমাত্র ফলে ছেদ আকার যাচাই করতে হবে লক্ষ্য মূল্যবোধের অ্যারে বলতে যে একই আকার $haystack
একটি সুপারসেটও হয় $target
।
যে অন্তত একটি মান যাচাই করতে $target
রয়েছেন $haystack
, আপনি এই চেক করতে পারেন:
if(count(array_intersect($haystack, $target)) > 0){
// at least one of $target is in $haystack
}
বিকাশকারী হিসাবে আপনার সম্ভবত সেট অপারেশন (পার্থক্য, ইউনিয়ন, ছেদ) শিখতে হবে। আপনি আপনার অ্যারেটিকে "সেট" হিসাবে এবং অন্যটি কীগুলির জন্য অনুসন্ধান করছেন তা কল্পনা করতে পারেন।
function in_array_all($needles, $haystack) {
return empty(array_diff($needles, $haystack));
}
echo in_array_all( [3,2,5], [5,8,3,1,2] ); // true, all 3, 2, 5 present
echo in_array_all( [3,2,5,9], [5,8,3,1,2] ); // false, since 9 is not present
function in_array_any($needles, $haystack) {
return !empty(array_intersect($needles, $haystack));
}
echo in_array_any( [3,9], [5,8,3,1,2] ); // true, since 3 is present
echo in_array_any( [4,9], [5,8,3,1,2] ); // false, neither 4 nor 9 is present
খড়ের কাঁটাতে সূঁচের কোনও উপস্থিতি আছে কিনা তা পরীক্ষা করতে @ রোক ক্রালজ জবাব (সেরা আইএমও) বন্ধ করে দেওয়া উচিত, কোডের পর্যালোচনা চলাকালীন কখনও কখনও বিভ্রান্তিকর হতে পারে তার (bool)
পরিবর্তে আপনি ব্যবহার করতে পারেন !!
।
function in_array_any($needles, $haystack) {
return (bool)array_intersect($needles, $haystack);
}
echo in_array_any( array(3,9), array(5,8,3,1,2) ); // true, since 3 is present
echo in_array_any( array(4,9), array(5,8,3,1,2) ); // false, neither 4 nor 9 is present
এই সমস্যাটির জন্য আইএমএইচও মার্ক ইলিয়ট এর সমাধান সেরা best যদি আপনাকে অ্যারে উপাদানগুলির মধ্যে আরও জটিল তুলনা অপারেশন করতে হয় এবং আপনি পিএইচপি 5.3 এ থাকেন তবে আপনি নীচের মতো কিছু সম্পর্কেও ভাবতে পারেন:
<?php
// First Array To Compare
$a1 = array('foo','bar','c');
// Target Array
$b1 = array('foo','bar');
// Evaluation Function - we pass guard and target array
$b=true;
$test = function($x) use (&$b, $b1) {
if (!in_array($x,$b1)) {
$b=false;
}
};
// Actual Test on array (can be repeated with others, but guard
// needs to be initialized again, due to by reference assignment above)
array_walk($a1, $test);
var_dump($b);
এটি একটি বন্ধের উপর নির্ভর করে; তুলনা ফাংশন অনেক বেশি শক্তিশালী হতে পারে। শুভকামনা!
if(empty(array_intersect([21,22,23,24], $check_with_this)) {
print "Not found even a single element";
} else {
print "Found an element";
}
অ্যারে_ইন্টারসেক্ট () অ্যারে 1 এর সমস্ত মানগুলি যুক্ত করে যা সমস্ত আর্গুমেন্টে উপস্থিত রয়েছে returns মনে রাখবেন কীগুলি সংরক্ষিত আছে।
অ্যারে 1 এর মানগুলিতে সমস্ত অ্যারে যুক্ত একটি অ্যারে প্রদান করে যার মানগুলি সমস্ত পরামিতিতে বিদ্যমান in
খালি () - কোনও ভেরিয়েবল খালি কিনা তা নির্ধারণ করুন
ভের উপস্থিত থাকলে FALSE প্রদান করে এবং শূন্য-শূন্য, মানহীন মান রয়েছে। অন্যথায় সত্য প্রদান করে।