PHP in_array没有找到那里的值

时间:2011-08-06 23:18:43

标签: php arrays search

我有一个名为$ friend_array的数组。当我print_r($ friend_array)时,它看起来像这样:

Array ( [0] => 3,2,5 ) 

我还有一个名为$ uid的变量,它正从网址中提取。

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

然而,以下是说不存在:

if(in_array($uid, $friend_array)){
  $is_friend = true;
}else{
  $is_friend = false;

这总是返回false。我回显$ uid,它是3.我打印数组,3就在那里。

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

3 个答案:

答案 0 :(得分:4)

的输出
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';

答案 1 :(得分:3)

Array ( [0] => 3,2,5 )表示数组元素0是字符串3,2,5,因此,在对is_array进行$uid检查之前,您必须首先使用,作为分隔符将该字符串分解为数组,然后检查$uid

// $friend_array contains as its first element a string that
// you want to make into the "real" friend array:
$friend_array = explode(',', $friend_array[0]);

if(in_array($uid, $friend_array)){
  $is_friend = true;
}else{
  $is_friend = false;
}

Working example

答案 2 :(得分:0)

看起来你的$ friend_array设置错误了。每个值3,2和5在数组中都需要自己的键才能使用in_array。

示例:

$friend_array[] = 3;
$friend_array[] = 2;
$firned_array[] = 5;

您的上述if语句将正常运行。