检查数组中是否存在值

时间:2011-11-21 02:15:03

标签: php arrays array-key-exists

我正在尝试使用此代码来检查数组中是否存在值。

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
    echo (array_key_exists($num, $arr)); //show the index, in this case 1
}

我想要的是显示相应的值,换句话说,0.58

我该怎么做?

4 个答案:

答案 0 :(得分:5)

你需要的是:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
    echo $arr[$num];
}

答案 1 :(得分:2)

假设您拥有所需值的键或索引位置,您可以使用两个函数array_key_exists()isset()

array_key_exists()检查数组以查看您指定的密钥是否存在于数组中。它不会检查是否存在与此键关联的值。换句话说,可以在数组中设置键,但值可以为null。

示例用法:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
  echo $arr[$num];
}

isset()可用于查看是否在特定数组索引中设置了值。

示例用法:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (isset($arr[$num])) {
  echo $arr[$num];
}

由于您似乎只是要求检查数组中是否存在特定值,因此您可以查看使用in_array()来扫描数组的值并返回true或false,具体取决于它是否找到了值。

示例用法:

$arr = array ('2' => '0', '3' => '0.58');
$needle = '0.58';
if (in_array($needle, $arr)) {
  echo "found: $needle";
}

此外,php.net还有许多你应该熟悉的其他array functions

答案 2 :(得分:1)

var_dump(in_array(0.58, $arr)); // 3

相关docs

答案 3 :(得分:1)

试试吧

<?php
$arr = array(
    '2' => '0',
    '3' => '0.58'
    );

$num = 3;
if (array_key_exists($num, $arr)) {
    echo $arr[$num];
    //  0.58
}
echo '<br/>';
$val = '0.58';
if (in_array($val, $arr)) {
    echo '0.58 found';
}
?>