我使用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
代码1:
global $postisfeatured;
global $featurePostArray;
if ($postisfeatured == "1")
array_push($featurePostArray, $post->ID);
if (in_array($post, "ID", $featurePostArray) && $postisfeatured != "1")
echo '<div class="hide">';
代码2:
if ($postisfeatured != "1") {
appthemes_after_endwhile();
$postisfeatured = "";
}
该行: if (in_array($post,"ID",$featurePostArray) && $postisfeatured != "1") {
是错误。
对于签名in_array
样子:
in_array($needle, $haystack, $strict = FALSE);
哪里:
needle
是字符串,整型,资源等你正在寻找。
haystack
数组中,你要搜索
strict
(可选)如果(或不)匹配的项应该是相同的( ===
)
你是不是使用in_array
功能,它应该被使用。
在第二个参数您放置一个字符串(即"ID"
),这是错的; 你应该把你希望在搜索,在该点的阵列。
结果应该是这样的:
$valueToSearch = "a";
$arrayToSearch = array("a", "b", "c");
echo in_array($valueToSearch, $arrayToSearch);
请参考文档
您使用的“ID”为它是一个字符串的第二参数。 尝试以下方法:
if ( is_array($featurePostArray) && in_array($post->ID, $featurePostArray) ) {
//some action
}
我想我解决了这个问题。 我有我的表单字段similiar情况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>
- 然后我试图运行脚本,并选择无我得到了已知错误的选项“in_array()预计参数2 ......”
- 溶液是 ( 在点1),以设置为空数组
$lang=array();