我在这里有疑问。实际上,in_array()
和array_key_exists()
有什么区别?我已经试图找到答案,但仍然感到困惑。能否给我一个示例呢?
谢谢。
in_array()
与array_key_exists()
区别:
in_array()
检查一个值是否存在于数组中(检查的是值,而不是键),如果存在则返回true
,否则返回false
。而:
array_key_exists()
检查给定的键或索引是否存在于数组中(检查的是键,而不是值),如果存在则返回true
,否则返回false
。请访问手册(上面的链接)获取示例和更多信息。
一个示例链接: https://eval.in/602279in_array
函数会在数组值中检查给定参数的存在,这意味着如果针对关联数组进行搜索,它将忽略数组键。in_array
函数接受第三个参数(TRUE或FALSE,默认为FALSE)来使用严格类型比较。如果省略此参数,则会发生以下情况:in_array(0,[false]) => true (0 is coerced to boolean for loose comparison)
in_array(1,['1 person']) => true ('1 person' is coerced as numeric until the first non numeric character)
in_array('',[null]) => true (again, string is coerced).
in_array([1,2],[[1,2], [3,4]]) => true
第四array_key_exists
会在数组键中搜索。如果数组是非关联的,每个元素的数字索引就是其键:
array_key_exists(0,[1,2,3]) => true (there is an element at index 0)
array_key_exists('two',['one'=>1, 'two'=>2]) => true (there is an element with key 'two')
array_key_exists(0,['0'=>1, 'two'=>2]) => true
array_key_exists(1,['1 person'=>1, 'two'=>2]) => false
in_array
在数组内容上执行顺序扫描,而 array_key_exists
对哈希表执行搜索。这意味着后者的性能与您搜索的数组大小无关,而 in_array
的速度与数组大小成正比。因此,如果您正在进行...in_array('one', array_keys(['one'=>1, 'two'=>2]))
array_key_exists('one', ['one'=>1, 'two'=>2])
$arr=["a"=>1,"b"=>2,"c"=>3,4,5,6];
// now you need to search 5 in $arr then you need to use in_array()
// and array_key_exists() check if key exist in array
in_array(5); //return true
array_key_exist("a"); // return true
if(is_array($urarray)){}
如果你想检查一个数组是否被设置了
if(isset($urarray)){}
if (array_key_exists('key',$urarray)){}
if(in_array("value", $urarray))){}
并且不为 NULL
。 - Maksym Semenykhin变量已设置且不为NULL
。 - Maksym Semenykhin正如http://php.net/所说
array-key-exists检查数组中是否存在给定的键或索引
如果数组中设置了给定的键,则返回TRUE。 键可以是数组索引可能的任何值。
示例#1 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";
}
?>
in-array 检查一个值是否存在于数组中
如果在数组中找到该值,则返回TRUE,否则返回FALSE。
示例#1 in_array() 示例
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
所以基本上一个函数检查给定的数组值,另一个函数检查给定的数组键是否存在
$arr = [
`key1'=>'value1',
'key2'=>'value2',
]
array_key_exists
吗? - Ismail RBOUH