配列内の検索

Posted by muchag | PHP | 2010-08-04 (水) 1:16:18

配列内を検索する関数は複数ある。
array_search()array_keys()array_key_existsin_array()

array_search
  1. mixed array_search  (  mixed $needle  ,  array $haystack  [,  bool $strict  ] )

PHP マニュアル:array_search

needle が見つかった場合に配列のキー、 それ以外の場合に FALSE を返します。
もし haystack に 1 つ以上の needle に見つかった場合、 最初にマッチしたキーが返されます。

警告:この関数は論理値 FALSE を返す可能性がありますが、FALSE として評価される 0 や “” といった値を返す可能性もあります。
詳細については 論理値のセクションを参照してください。
この関数の返り値を調べるには === 演算子 を使用してください。

  1. $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
  2.  
  3. $key = array_search('green', $array); // $key = 2;
  4. $key = array_search('red', $array);   // $key = 1;

 

array_keys
  1. array array_keys  (  array $input  [,  mixed $search_value  [,  bool $strict = false  ]] )

PHP マニュアル:array_keys

配列 input から全てのキー (数値および文字列) を返します。

オプション search_value が指定された場合、 指定した値に関するキーのみが返されます。
指定されない場合は、 input から全てのキーが返されます。

  1. $array = array(0 => 100, "color" => "red");
  2. print_r(array_keys($array));
  3.  
  4. // output
  5. Array
  6. (
  7.     [0] => 0
  8.     [1] => color
  9. )
  10.  
  11.  
  12. $array = array("blue", "red", "green", "blue", "blue");
  13. print_r(array_keys($array, "blue"));
  14.  
  15. // output
  16. Array
  17. (
  18.     [0] => 0
  19.     [1] => 3
  20.     [2] => 4
  21. )
  22.  
  23.  
  24. $array = array("color" => array("blue", "red", "green"),
  25.                "size"  => array("small", "medium", "large"));
  26. print_r(array_keys($array));
  27.  
  28. // output
  29. Array
  30. (
  31.     [0] => color
  32.     [1] => size
  33. )

 

array_key_exists
  1. bool array_key_exists  (  mixed $key  ,  array $search  )

PHP マニュアル:array_key_exists

成功した場合に TRUE を、失敗した場合に FALSE を返します。

5.3.0 この関数はオブジェクトに対しては使えなくなりました。オブジェクトについては property_exists() を使用します。

  1. $search_array = array('first' => null, 'second' => 4);
  2.  
  3. // false を返します
  4. isset($search_array['first']);
  5.  
  6. // true を返します
  7. array_key_exists('first', $search_array);

 

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

PHP マニュアル:in_array

配列で needle が見つかった場合に TRUE、それ以外の場合は、FALSE を返します。

PHP | 2010-08-04 (水) 1:16:18 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment