有一种方法可以获得阵列的所有键?

时间:2010-08-04 17:11:26

标签: php

我希望得到数组的所有键,将每个键与数字进行比较,类似于:

array(
[0] => 7
[1] => 8
[2] => 4
[3] => 6
)

if (6 != EACH KEY OF ARRAY) {
    so...
}

条件不会显示,因为有[3] =>当然,关键6 = 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'];
}