cof*_*tor 2 php arrays key-value
我正在成功使用array_key_exists(),如php.net所述
例:
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
Run Code Online (Sandbox Code Playgroud)
但是,取出值,它不起作用.
<?php
$search_array = array('first', 'second');
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
Run Code Online (Sandbox Code Playgroud)
不确定如何仅仅按键来比较2个数组.
Mat*_*chu 12
第一个示例是关联数组:分配了值的键.第二个例子只是一个更漂亮的说法:
array(0 => 'first', 1 => 'second')
Run Code Online (Sandbox Code Playgroud)
对于第二个,您需要使用in_array.你不应该检查是否存在某个键,array_key_exists而是存在一个值,这样in_array做.
if(in_array('first', $array))
Run Code Online (Sandbox Code Playgroud)
在PHP中,数组中的每个元素都有两部分:键和值.
除非您手动说出要附加到每个值的键,否则PHP会为每个元素提供一个从0开始的数字索引,递增1.
所以区别
array('first','second')
Run Code Online (Sandbox Code Playgroud)
和
array('first'=>1,'second'=>4)
Run Code Online (Sandbox Code Playgroud)
是第一个没有用户定义的键.(它实际上有0和1键)
如果你print_r()在第一次做的话就会说出类似的话
Array {
[0] => "first",
[1] => "second"
}
Run Code Online (Sandbox Code Playgroud)
而第二个看起来像
Array {
["first"] => 1,
["second"] => 2
}
Run Code Online (Sandbox Code Playgroud)
因此,要检查密钥 "first"是否存在,您可以使用
array_key_exists('first',$search_array);
Run Code Online (Sandbox Code Playgroud)
检查是否存在值 "first",您将使用
in_array('first',$search_array);
Run Code Online (Sandbox Code Playgroud)