অ্যারে মান বিদ্যমান কিনা তা কীভাবে পরীক্ষা করবেন?


109

আমি কিভাবে পরীক্ষা করতে পারবেন যদি $something['say']এর মান আছে 'bla'বা 'omg'?

$something = array('say' => 'bla', 'say' => 'omg');

45
একটি অ্যারের কীগুলি অবশ্যই অনন্য হতে হবে।
গম্বো

উত্তর:


113

ব্যবহার করছেন if?

if(isset($something['say']) && $something['say'] == 'bla') {
    // do something
}

বিটিডব্লিউ, আপনি sayদু'বার কীটির সাথে একটি মান নির্ধারণ করছেন , সুতরাং আপনার অ্যারেটির ফলাফল কেবল একটি মান সহ একটি অ্যারে হবে।


289

আপনি পিএইচপি ইন_আরে ফাংশনটি ব্যবহার করতে পারেন

if( in_array( "bla" ,$yourarray ) )
{
    echo "has bla";
}

7
অভিন্ন চাবি দিয়ে অ্যারে রাখা কি সম্ভব? দ্বিতীয় মানটি কি মূলটিকে ওভাররাইট করবে না?
সাইট্রিকগুই

47

ব্যবহার: in_array()

$search_array = array('user_from','lucky_draw_id','prize_id');

if (in_array('prize_id', $search_array)) {
    echo "The 'prize_id' element is in the array";
}

এখানে আউটপুট: The 'prize_id' element is in the array


ব্যবহার: array_key_exists()

$search_array = array('user_from','lucky_draw_id','prize_id');

if (array_key_exists('prize_id', $search_array)) {
    echo "The 'prize_id' element is in the array";
}

আউটপুট নেই


উপসংহারে, array_key_exists()একটি সাধারণ অ্যারে দিয়ে কাজ করে না। এটি কেবল অ্যারে কী উপস্থিত আছে কিনা তা সন্ধান করতে। in_array()পরিবর্তে ব্যবহার করুন।

এখানে আরও উদাহরণ:

<?php
/**++++++++++++++++++++++++++++++++++++++++++++++
 * 1. example with assoc array using in_array
 *
 * IMPORTANT NOTE: in_array is case-sensitive
 * in_array — Checks if a value exists in an array
 *
 * DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
 *++++++++++++++++++++++++++++++++++++++++++++++
 */
$something = array('a' => 'bla', 'b' => 'omg');
if (in_array('omg', $something)) {
    echo "|1| The 'omg' value found in the assoc array ||";
}

/**++++++++++++++++++++++++++++++++++++++++++++++
 * 2. example with index array using in_array
 *
 * IMPORTANT NOTE: in_array is case-sensitive
 * in_array — Checks if a value exists in an array
 *
 * DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
 *++++++++++++++++++++++++++++++++++++++++++++++
 */
$something = array('bla', 'omg');
if (in_array('omg', $something)) {
    echo "|2| The 'omg' value found in the index array ||";
}

/**++++++++++++++++++++++++++++++++++++++++++++++
 * 3. trying with array_search
 *
 * array_search — Searches the array for a given value 
 * and returns the corresponding key if successful
 *
 * DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
 *++++++++++++++++++++++++++++++++++++++++++++++
 */
$something = array('a' => 'bla', 'b' => 'omg');
if (array_search('bla', $something)) {
    echo "|3| The 'bla' value found in the assoc array ||";
}

/**++++++++++++++++++++++++++++++++++++++++++++++
 * 4. trying with isset (fastest ever)
 *
 * isset — Determine if a variable is set and 
 * is not NULL
 *++++++++++++++++++++++++++++++++++++++++++++++
 */
$something = array('a' => 'bla', 'b' => 'omg');
if($something['a']=='bla'){
    echo "|4| Yeah!! 'bla' found in array ||";
}

/**
 * OUTPUT:
 * |1| The 'omg' element value found in the assoc array ||
 * |2| The 'omg' element value found in the index array ||
 * |3| The 'bla' element value found in the assoc array ||
 * |4| Yeah!! 'bla' found in array ||
 */
?>

এখানে PHP DEMO


array_key_exists()পরেরটিতে $search_arrayএসোসিয়েটিভ অ্যারে থাকা অবস্থায় অ্যারে কীগুলির জন্য পরীক্ষা করা হয় । সন্দেহ নেই এটি কাজ করবে না। তোমার আগে array_flip()এটা করা উচিত ।
ছাই 22


6

সূচকটি সংজ্ঞায়িত হয়েছে কিনা তা পরীক্ষা করতে: isset($something['say'])


আমি এই উত্তরের উদ্দেশ্য বুঝতে পারি না। একটি সূচকের মান যাচাই করার উদ্দেশ্যটি কীভাবে অর্জন করতে পারে?
ব্র্যাড কোচ

ভাল প্রশ্ন. এটি লিখিতভাবে প্রশ্নের কোনও উত্তর দেয় না। আমি মনে করি না, তবে যেহেতু আমি প্রশ্নটি মূলত জিজ্ঞাসা করার প্রায় 3 মিনিটের পরে উত্তর দিয়েছি, আমি অনুমান করতে পারি যে ওপি তাদের মূল প্রশ্নটিকে আরও স্পষ্ট করার জন্য সম্পাদনা করেছে, এটি সম্পাদনা হিসাবে নিবন্ধিত হওয়ার আগে প্রাথমিক সম্পাদনা কাট অফের মধ্যে। এটি যদি কোনও অর্থবোধ করে।
প্রতিধ্বনি

5

আপনি অ্যারে ( আইসেট ) () বা কখনও কখনও আরও ভাল অ্যারে_কি_এক্সেস্টিসহ () ডকুমেন্টেশন পার্থক্য ব্যাখ্যা করে ) এর সাথে একটি নির্দিষ্ট উপাদান রয়েছে কিনা তা পরীক্ষা করতে পারেন । যদি আপনি নিশ্চিত হতে না পারেন যে অ্যারেতে 'বলুন' এর সূচকের কোনও উপাদান রয়েছে কিনা আপনার প্রথমে এটি পরীক্ষা করা উচিত বা আপনি 'সতর্কতা: অপরিবর্তিত সূচক ....' বার্তা পেতে পারেন।

পরীক্ষার ক্ষেত্রে যদি উপাদানটির মান একটি স্ট্রিংয়ের সমান হয় তবে আপনি == বা (আবার কখনও কখনও আরও ভাল) পরিচয় অপারেটর === ব্যবহার করতে পারেন যা ধরণের জাগলিংকে অনুমতি দেয় না ।

if( isset($something['say']) && 'bla'===$something['say'] ) {
  // ...
}

অ্যারে_কি_এক্সিজিস্ট সর্বদা আরও ভাল সমাধান
অজয়আর

5

in_array () ঠিক আছে যদি আপনি কেবল যাচাই করেন তবে যদি আপনার কোনও মান আছে কিনা তা পরীক্ষা করে সম্পর্কিত কীটি ফেরত দিতে হয়, অ্যারে_সার্ক একটি ভাল বিকল্প।

$data = [
    'hello',
    'world'
];

$key = array_search('world', $data);

if ($key) {
    echo 'Key is ' . $key;
} else {
    echo 'Key not found';
}

এটি "কীটি 1" মুদ্রণ করবে


3

শুধু পিএইচপি ফাংশন ব্যবহার করুন array_key_exists()

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

3
<?php
if (in_array('your_variable', $Your_array)) {
    $redImg = 'true code here';
} else {
    $redImg = 'false code here';
} 
?>

1
আরও ভাল উত্তরে সাধারণত কোড ছাড়াও একটি ব্যাখ্যা থাকে। আমি বিশ্বাস করি এটি করা আপনার উত্তরকে উন্নত করবে!
অমিত

1

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


1
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

ইন_আর্রে ইন_আররে () এর আর একটি ব্যবহার সুই হিসাবে অ্যারে সহ

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was found\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was found\n";
}

if (in_array('o', $a)) {
    echo "'o' was found\n";
}
?>

1

ধরে নিচ্ছি আপনি একটি সাধারণ অ্যারে ব্যবহার করছেন

। অর্থাত

$MyArray = array("red","blue","green");

আপনি এই ফাংশনটি ব্যবহার করতে পারেন

function val_in_arr($val,$arr){
  foreach($arr as $arr_val){
    if($arr_val == $val){
      return true;
    }
  }
  return false;
}

ব্যবহার:

val_in_arr("red",$MyArray); //returns true
val_in_arr("brown",$MyArray); //returns false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.