Php in_array()即使值确实存在也不起作用
也许已经太晚了,我变得很笨,但是Php in_array()即使值确实存在也不起作用,php,wordpress,Php,Wordpress,也许已经太晚了,我变得很笨,但是in_array() 如果(用户是否已登录()): $user\u id=get\u current\u user\u id(); $recommendedHost=get_user_meta($user_id,'author_极力推荐'); var_转储(推荐主机)//数组(1){[0]=>数组(2){[0]=>字符串(2)“48”[1]=>字符串(2)“14”} var_dump($eventHostID);//内部(14) if(在数组中($eventHos
in_array()
如果(用户是否已登录()):
$user\u id=get\u current\u user\u id();
$recommendedHost=get_user_meta($user_id,'author_极力推荐');
var_转储(推荐主机)//数组(1){[0]=>数组(2){[0]=>字符串(2)“48”[1]=>字符串(2)“14”}
var_dump($eventHostID);//内部(14)
if(在数组中($eventHostID,$recommendedHost)){
//$eventRecommended=true;
回应“是”;
}否则{
回应‘否’;
}
//结果:没有
endif;
我还尝试将int
转换为str
,但这并没有改变预期的效果,因为默认情况下,in_array()
与$needle
的数据类型不匹配,in_array()
在多维数组上不起作用。我必须运行一个foreach
循环来检查所有数组,然后检查每个一维数组中的指针
如果(用户是否已登录()):
$user\u id=get\u current\u user\u id();
$recommendedHosts=get_user_meta($user_id,'author_极力推荐');
$eventRecommended='';
foreach($recommendedHosts作为$recommendedHost){
if(在数组中($eventHostID,$recommendedHost)){
$eventRecommended=true;
}
}
endif;?>
$recommendedHost
是一个数组数组。您在中查找的值是$recommendedHost[0]
,而不是$recommendedHost
。或者,假设您的数组中只有一个数组(如上所述),您也可以在数组中执行类似于的操作($eventHostID,$recommendedHost[0])
。你的答案当然也行。