我希望得到数组的所有键,将每个键与数字进行比较,类似于:
array(
[0] => 7
[1] => 8
[2] => 4
[3] => 6
)
if (6 != EACH KEY OF ARRAY) {
so...
}
条件不会显示,因为有[3] =>当然,关键6 = 6。
有功能吗?别的什么?
答案 0 :(得分:8)
foreach($array as $key => $val)
{
if (6 != $key) {
// so...
}
}
示例:强>
$array = array(7, 8, 4, 6);
foreach($array as $key => $val)
{
if (6 != $key) {
echo '6 is not equal to ' . $key . '<br />';
}
else {
echo '6 is equal to ' . $key . '<br />';
}
}
<强>结果:强>
6 is not equal to 7
6 is not equal to 8
6 is not equal to 4
6 is equal to 6
但是,如果您要检查数组中是否存在 值 为6,请使用in_array
,如下所示:
if (in_array(6, $array)) {
// 6 is present in the array
}
答案 1 :(得分:4)
您想要array_keys
函数,最有可能:
<?php
$array = array(7,8,4,6);
// Keys is an array of the keys from $array - [0,1,2,3]
$keys = array_keys($array);
print_r($keys);
?>
该print_r的输出为:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
)
(注意原始键是新数组的值。)
然后,您想要使用in_array
检查您要查找的值是否在数组中:
<?php
echo in_array(6, $keys) // FALSE
?>
答案 2 :(得分:1)
如果您只想查看数组中是否存在某个键,这是最快的方法:
$key = 6; // for example
if(isset($myArray[$key]))
{
echo "the key $key is used in the array";
}
答案 3 :(得分:0)
if(!in_array(6)) {
}
是的,我知道OP会询问钥匙,但从他的例子来看,他似乎想要价值观。
答案 4 :(得分:0)
我不确定我是否理解你的要求,但其中一个可能适合你:
只获取密钥:
print_r(array_keys($array));
使用值交换密钥:
print_r(array_flip($array));
foreach ($array as $key => $value)
{
var_dump($key, $value);
}
答案 5 :(得分:0)
你不能有多个相同的密钥,所以不需要遍历整个数组只需编写代码来查找它。你可以这样做:
$arr = Array('1'=>'a','3'=>'b','6'=>'c'); if (array_key_exists('6',$arr)) { echo 'value of 6 = ' . $arr['6']; }