我有一个名为$ 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就在那里。
我做错了什么?任何帮助将不胜感激!
答案 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;
}
答案 2 :(得分:0)
看起来你的$ friend_array设置错误了。每个值3,2和5在数组中都需要自己的键才能使用in_array。
示例:
$friend_array[] = 3;
$friend_array[] = 2;
$firned_array[] = 5;
您的上述if语句将正常运行。