使用 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 检查数组中是不是存在变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章