পিএইচপি চেক করে অ্যারেতে অন্য অ্যারে থেকে সমস্ত অ্যারে মান রয়েছে কিনা


110
$all = array
(
    0 => 307,
    1 => 157,
    2 => 234,
    3 => 200,
    4 => 322,
    5 => 324
);
$search_this = array
(
    0 => 200,
    1 => 234
);

আমি অনুসন্ধান করতে চাই যে $ সমস্ততে সমস্ত_সন্ধান_এই মান রয়েছে এবং সত্য বা মিথ্যা ফিরে আসে return কোন ধারণা দয়া করে?



@ বিষালকুমারসাহু যথেষ্ট নকল নয়: আপনার প্রদত্ত লিঙ্কটি অন্য উপাদানগুলিতে অন্য কোনও উপাদান রয়েছে কিনা তা খতিয়ে দেখার সাথে সম্পর্কযুক্ত, সমস্ত উপাদান অন্যটিতে অন্তর্ভুক্ত রয়েছে কিনা তা নয়।
স্টেফান

উত্তর:


159

এ লুক array_intersect ()

$containsSearch = count(array_intersect($search_this, $all)) == count($search_this);

11
আপনি কি জানেন যে আপনি উভয় count()কল বাদ দিতে পারেন ?
রিক্কেন

1
@ ব্রিকেন মানগুলি কি পুনরুদ্ধার করা যায় না array_intersect()? মানে ['a', 'b'] != ['b', 'a'],।
এসবিচেনকো

4
এবং তারপরেও: অ্যারের তুলনা : " ==সত্য যদি $ a এবং $ b এর কী / মান জোড়া থাকে" " , সুতরাং আদেশটি এমনকি তার পক্ষে গুরুত্বপূর্ণ নয় (এর ===জন্য ব্যবহার করুন )
রিক্কেন

2
এই উত্তরটি ধরে নিয়েছে যে $ সমস্ত অ্যারেতে কেবল অনন্য মান রয়েছে। যদি এটি না হয় তবে অ্যারে_ইন্টারেক্টেস ফাংশনে সমস্ত অ্যারে on সমস্ত অ্যারে অ্যারে_উইনিক ফাংশনটি ব্যবহার করতে পারেন।
পুনরায়

5
অ্যারে_ডিফ সলিউশন @ অর্ড্ড অনেক ক্লিনার
জোসেফ কনোলি

223

পূর্ববর্তী উত্তরগুলি তাদের প্রয়োজনের চেয়ে আরও বেশি কাজ করছে। শুধু ব্যবহার অ্যারে_ডিফ করুন । এটি করার সহজ উপায় এটি:

$containsAllValues = !array_diff($search_this, $all);

এটাই আপনাকে করতে হবে।


4
আহা মুহুর্তের জন্য ধন্যবাদ; আমি ভাবতে এসেছি array_intersect
ডেরেক ইলচুক

19
এই উত্তর হওয়া উচিত
ম্যাথু

2
হ্যাঁ এটি এর চেয়ে ভাল সমাধান
ওলেকসান্ডার ডিউডিয়ন

1
ছেদ করা থেকে ভাল সমাধান!
দ্য বোস্টি

1
আমি এই পৃষ্ঠাটি জুড়ে এসে উপরোক্ত সমাধানটি ব্যবহার করেছি কারণ এটি সদৃশ হিসাবে গণ্য হয়েছিল
রায়জোর

9

অ্যারে_ডিফ সহ কিছুটা খাটো

$musthave = array('a','b');
$test1 = array('a','b','c');
$test2 = array('a','c');

$containsAllNeeded = 0 == count(array_diff($musthave, $test1));

// this is TRUE

$containsAllNeeded = 0 == count(array_diff($musthave, $test2));

// this is FALSE

3

আমি মনে করি আপনি ছেদ করে ফাংশনটি সন্ধান করছেন

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

array_intersect()সমস্ত আর্গুমেন্টে উপস্থিত অ্যারে 1 এর সমস্ত মান সমন্বিত একটি অ্যারে প্রদান করে। মনে রাখবেন কীগুলি সংরক্ষিত আছে।

http://www.php.net/manual/en/function.array-intersect.php


0

এটি সম্পর্কে:

function array_keys_exist($searchForKeys = array(), $searchableArray) {
    $searchableArrayKeys = array_keys($searchableArray);

    return count(array_intersect($searchForKeys, $searchableArrayKeys)) == count($searchForKeys); 
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.