in_array()预计参数2为阵列,串在Classipress给出(in_array() expe

2019-10-20 02:03发布

我使用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") {是错误。

Answer 1:

对于签名in_array样子:

  in_array($needle, $haystack, $strict = FALSE);

哪里:

needle是字符串,整型,资源等你正在寻找。

haystack数组中,你要搜索

strict (可选)如果(或不)匹配的项应该是相同的( ===



Answer 2:

你是不是使用in_array功能,它应该被使用。

在第二个参数您放置一个字符串(即"ID" ),这是错的; 你应该把你希望在搜索,在该点的阵列。

结果应该是这样的:

$valueToSearch = "a";
$arrayToSearch = array("a", "b", "c");
echo in_array($valueToSearch, $arrayToSearch);

请参考文档



Answer 3:

您使用的“ID”为它是一个字符串的第二参数。 尝试以下方法:

if ( is_array($featurePostArray) && in_array($post->ID, $featurePostArray) ) {
    //some action
}


Answer 4:

我想我解决了这个问题。 我有我的表单字段similiar情况select multiple自动创建不是简单的变量,但数组类型变量(PHP弱变种类型)。 所以,当我宣布首先在我的代码值:

  1. $lang='';
  2. 然后$lang=$_POST['lang'];
  3. <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>
  4. 然后我试图运行脚本,并选择无我得到了已知错误的选项“in_array()预计参数2 ......”
  5. 溶液是在点1),以设置为空数组$lang=array();


文章来源: in_array() expects parameter 2 to be array, string given in Classipress