定为数组元素.
在数组中搜索一个特定值,如果找到这个值则返回true,否则返回false
- in_array()
- boolean in_array(mixed needle,array haystack[.boolean strict])
例:
<?php $word = 'a'; $words = array('a','b','c','d','e','f'); echo in_array($word,$words)?'yes':'no'; // 将输出yes echo in_array($word,$words,1)?'yes':'no'; //此时将同时判断类型.同样输出yes
--------------------------分割线--------------------
搜索关联数组的键
可以是数字索引,也可以是关联索引.
- array_key_exists()----------数组_键_存在
- boolean array_key_exists(mixed key ,array array)
例:
<?php $search_array = array('first' => 1, 'second' => 4); if (array_key_exists('first', $search_array)) { echo "The 'first' element is in the array"; } ?>
----------------------分割线-------------------------------
上例摘自PHP手册
----------------------------------------------------------
在数组中搜索相关的值,成功返回相关值得索引,没有找到或者失败返回false;
- array_search()
- mixed array_search(mixed needle, array haystack [,boolean strict]);
<?php $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2; $key = array_search('red', $array); // $key = 1; ?>
---------------------分割线------------------
上例摘自PHP手册
---------------------------------------------------
一些注意的地方,
首先,如果在数组中查找的是字符串,那么查找的字符串将比对大小写.
第二,如果返回的是数组的第一个元素的键,而恰巧数组又是数字索引的.那么返回的值将是0,与bool型的false等价,解决方案,1,使用===判断.2,加入参数三强制判断类型.
--------------------------------------------
获取数组的键.函数返回一个数组,其中包含所搜索数组中找到的所有的键.如果提供了可选参数search_value,则指返回与其值匹配的键.
- array_keys()
-
array array_keys ( array $input [, mixed $search_value [, bool $strict ]] )
<?php $array = array(0 => 100, "color" => "red"); print_r(array_keys($array)); $array = array("blue", "red", "green", "blue", "blue"); print_r(array_keys($array, "blue")); $array = array("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large")); print_r(array_keys($array)); ?>
上例将输出:
Array ( [0] => 0 [1] => color )
Array ( [0] => 0 [1] => 3 [2] => 4 )
Array ( [0] => color [1] => size )
-------------------分割线-------------------
上例摘自PHP手册,注意几点,
可以用这个函数给多维数组的首维建立索引数组.
首先,这个可以是array_search的替代函数,同样返回键名.
第二,这个函数的第三个参数可选,同样存在array_search里面的布尔值等价问题.所以可以使用===判断类型或者指定第三个参数来判断返回值.
---------------还是分割线---------------
获取数组的值,
- array_values()
- array array_values ( array $input )
array_values()返回给定数组中的所有值,并重新定义数组的索引为数字索引,
如果使用这个函数会使原来数组的索引丢失.
使用这个函数可以对数组重新进行数字索引排列
如果给定的变量不为数组.会报警告.
Warning: array_values() expects parameter 1 to be array, string given in...
例:
<?php $array = array('a'=>'a',1=>'b','c','test'=>'d','e','f','g'); print_r($array); $var = ''; $bool = 0;$array1 = array_values($array); print_r($array1); $array2 = array_values($var); print_r($array2); $array3 = array_values($bool);
上面的会输出
Array | |
( | |
[a] => a | |
[1] => b | |
[2] => c | |
[test] => d | |
[3] => e | |
[4] => f | |
[5] => g | |
) | |
Array | |
( | |
[0] => a | |
[1] => b | |
[2] => c | |
[3] => d | |
[4] => e | |
[5] => f | |
[6] => g | |
) | |
<br /> | |
<b>Warning</b>: array_values() expects parameter 1 to be array, string given in |
<b>Warning</b>: array_values() expects parameter 1 to be array, string given in
-------------------------------------------
这个就先总结到这里.回头继续总结.