使用 in_array 检查数组中是不是存在变量 [重复]

Posted

技术标签:

【中文标题】使用 in_array 检查数组中是不是存在变量 [重复]【英文标题】:Checking to see if a variable exists in an array with in_array [duplicate]使用 in_array 检查数组中是否存在变量 [重复] 【发布时间】:2016-03-23 12:20:27 【问题描述】:

我正在使用 in_array 来查看 $appid 是否包含在变量 $r 中。这是我的数组 $r 的 print_r (数组中的 appid 总是在变化):

$array = array(0 =>
    array(0 => 356050, 'appid' => 356050),
    1 => array(0 => 338040, ' appid' => 338040),
    2 => array(0 => 263920, 'appid' => 263920),
    3 => array(0 => 411740, 'appid' => 411740)
);

$appid 等于 $r 数组中包含的 263920,但尽管满足条件,但“它可以工作”并没有被回显。任何帮助将不胜感激,因为我不明白我的 php 语句有什么缺陷。

if (in_array($appid, $r)) 
echo 'it works'; // criteria met

【问题讨论】:

你能显示正确的数组而不是print_r 吗?我不认为你的数组是完整的,索引 4 下的元素在哪里?? 你的数组是多维的。检查here 你的数组是一个多维数组,这可能对你有帮助:***.com/questions/4128323/… 【参考方案1】:

这是一种旧方法,但它会起作用。 由于您的输入是一个多维数组,因此您需要遍历数组并搜索该值是否在数组中。

<?php
$array = array(0 =>
    array(0 => 356050, 'appid' => 356050),
    1 => array(0 => 338040, ' appid' => 338040),
    2 => array(0 => 263920, 'appid' => 263920),
    3 => array(0 => 411740, 'appid' => 411740)
);
foreach ($array as $value) 
    if (in_array($appId, $value)) 
        echo 'Found';
    

?>

带有返回数据的键特定搜索:How to search by key=>value in a multidimensional array in PHP

我希望这会有所帮助。

【讨论】:

我会试一试。数组中的 appid 对于每个用户来说总是不同的,并且不断变化。【参考方案2】:

你可以使用这个来实现。

function searchAppID($id, $array) 
   foreach ($array as $key => $val) 
       if ($val['appid'] === $id) 
           return $key;
       
   
   return null;

这会奏效。你应该这样称呼它:

$id = searchAppID('263920 ', $r);

如果您有 n 级数组,则只需稍作修改即可使用上述函数。 如果您需要,请告诉我。

【讨论】:

【参考方案3】:

你有一个包含数组的数组。函数 in_array() 查看外部数组的内容,而不递归到内部数组。如果你这样做,它会找到一些东西

if (in_array(array(0 => $appid, 'appid' => $appid), $r)  
    echo 'It works'; 

【讨论】:

以上是关于使用 in_array 检查数组中是不是存在变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何检查一个数组内是不是存在指定元素

PHP如何检查一个数组内是不是存在指定元素

php 中 判断数组中是不是有值

php 判断数组里是不是有某个值

in_array() 和多维数组

php判断数组元素是不是存在