我使用Classipress theme
进行wordpress,并且我试图在我的类别中粘贴我的精选广告。
我找到了一个返回此错误的代码:
Warning: in_array() expects parameter 2 to be array, string given in loop-ad_listing.php on line 26
要使用粘贴顶部代码,我必须编辑两个页面并插入两个代码,然后我会发布错误部分:
首先:loop-ad_listing.php
global $postisfeatured;
global $featurePostArray;
if ($postisfeatured == "1")
array_push($featurePostArray, $post->ID);
if (in_array($post, "ID", $featurePostArray) && $postisfeatured != "1")
echo '<div class="hide">';
if ($postisfeatured != "1") {
appthemes_after_endwhile();
$postisfeatured = "";
}
该行:if (in_array($post,"ID",$featurePostArray) && $postisfeatured != "1") {
是错误。
答案 0 :(得分:4)
in_array
的签名如下:
in_array($needle, $haystack, $strict = FALSE);
其中:
needle
是您正在搜索的字符串,整数,资源等。
haystack
是您正在搜索的数组
strict
(可选)如果(或不匹配)匹配的项目应该相同(===
)
答案 1 :(得分:2)
您没有使用in_array
函数,因为它应该被使用。
在第二个参数中,您放置了一个字符串(即"ID"
),这是错误的;你应该在那个位置放置你想要搜索的数组。
结果应该是这样的:
$valueToSearch = "a";
$arrayToSearch = array("a", "b", "c");
echo in_array($valueToSearch, $arrayToSearch);
答案 2 :(得分:0)
您使用了&#34; ID&#34;作为第二个参数,它是一个字符串。请尝试以下方法:
if ( is_array($featurePostArray) && in_array($post->ID, $featurePostArray) ) {
//some action
}
答案 3 :(得分:0)
我想我解决了这个问题。我的表单字段select multiple
中有类似的情况,它会自动创建非简单变量但是数组类型变量(PHP弱变量类型)。所以当我在代码中首先声明值时:
$lang='';
$lang=$_POST['lang'];
<select id="lang" name="lang[]" multiple size="3">
<option value="en"<?php if(in_array('en',$lang)) echo ' selected';?>>English</option>
<option value="fr"<?php if(in_array('fr',$lang)) echo ' selected';?>>French</option>
<option value="pl"<?php if(in_array('pl',$lang)) echo ' selected';?>>Polish</option>
</select><br>
$lang=array();