检查一个值是否存在于数组中。

3

我正在尝试使用以下代码来检查一个数组中是否存在某个值。

$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
我该怎么做?

1
你的意思是$arr['3']吗?你从哪里获取$numCol$IA - animuson
3 的索引不是 1,而是 3。它是数组中的第二个条目,但这个信息不一定可检索。 - deceze
抱歉,我复制时更改了变量名称,忘记了这些。 - daniel__
4个回答

5
你需要的是这个:
$arr = array ('2' => '0', '3' => '0.58');

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

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还有很多其他数组函数,你应该熟悉它们。

1
var_dump(in_array(0.58, $arr)); // 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';
}
?>

请注意,除非您期望NULL值,否则isset($arr[$num])array_key_exists等效但速度更快。 - chx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接