数组中的PHP找不到存在的值

数组中的PHP找不到存在的值,php,arrays,search,Php,Arrays,Search,我有一个名为$friend\u数组的数组。当我打印\r$friend\u数组时,它如下所示: Array ( [0] => 3,2,5 ) $friend_array = array(); array_push($friend_array, '3,2,5'); print_r($friend_array); 我还有一个名为$uid的变量,它是从url中提取的 在我正在测试的页面上,$uid的值为3,因此它在数组中 然而,下面的说法是它不存在: if(in_array($uid, $f

我有一个名为$friend\u数组的数组。当我打印\r$friend\u数组时,它如下所示:

Array ( [0] => 3,2,5 ) 
$friend_array = array();
array_push($friend_array, '3,2,5');
print_r($friend_array);
我还有一个名为$uid的变量,它是从url中提取的

在我正在测试的页面上,$uid的值为3,因此它在数组中

然而,下面的说法是它不存在:

if(in_array($uid, $friend_array)){
  $is_friend = true;
}else{
  $is_friend = false;
这总是返回false。我回显$uid,它是3。我打印数组,3就在那里


我做错了什么?任何帮助都将不胜感激

您的$friend\u数组似乎设置错误。3、2和5的每个值都需要在数组中有自己的键才能在数组中工作

例如:

$friend_array[] = 3;
$friend_array[] = 2;
$firned_array[] = 5;
您的上述if语句将正常工作。

的输出

Array ( [0] => 3,2,5 ) 
。。。如果数组是由以下内容创建的,则会生成:

Array ( [0] => 3,2,5 ) 
$friend_array = array();
array_push($friend_array, '3,2,5');
print_r($friend_array);
基于你的问题,我认为这不是你想做的

如果要将三个值添加到数组的前三个索引中,请执行以下操作:

$friend_array = array();
array_push($friend_array, '3');
array_push($friend_array, '2');
array_push($friend_array, '5');
或者,作为array_push的简写:

$friend_array = array();
$friend_array[] = '3';
$friend_array[] = '2';
$friend_array[] = '5';
数组[0]=>3,2,5意味着数组元素0是字符串3,2,5,因此,在对$uid执行is_数组检查之前,必须首先将该字符串拆分为数组,使用作为分隔符,然后检查$uid:


如果您尝试使用数组$uid,$friend\u数组[0]会发生什么值得一提:$is\u friend=在数组$uid中,$friend\u数组的可读性更强,并且执行的操作完全相同。值来自SQL。我有一个名为friend_array的字段,它包含一个逗号分隔的值列表。我需要在while循环中进行foreach吗?我对数组很糟糕。这真的很有帮助……我想我需要更多地阅读关于数组的内容,看看是否有更有效的方法来实现这一点。谢谢你的回复!