【问题标题】:How to use in array ? Warning: in_array() expects parameter 2 to be array, string given in如何在数组中使用?警告:in_array() 期望参数 2 是数组,字符串在
【发布时间】:2018-07-10 09:19:48
【问题描述】:

我该如何处理这个错误:

警告:in_array() 期望参数 2 是数组,字符串在 C:\xampp\htdocs\php\index.php 中给出

我的代码是:

if (!isset($_GET['jenis'])) {
  $jenis =  "";
} else {
  $jenis = $_GET['jenis'];
}


<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="11" <?php if (in_array("11",$jenis))  { echo "checked"; } ?> > <a> 11 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="12" <?php if (in_array("12",$jenis))  { echo "checked"; } ?> > <a> 12 </a> </li>
<li><input type="checkbox" onclick="jeniss();" name="jenis[]" value="13" <?php if (in_array("13",$jenis))  { echo "checked"; } ?> > <a> 13 </a> </li>

注意:页面尚未发布任何内容时HTML输入类型的错误。

【问题讨论】:

  • 嗯,$jenis 是一个字符串,所以对它进行数组搜索有点困难。
  • 您可以通过将$jenis = ""; 更改为$jenis = []; 来修复它
  • @CD001 比较简单,谢谢

标签: php html arrays


【解决方案1】:

您必须通过使用检查$_GET['jenis'] 是字符串还是数组

var_dump($_GET['jenis']);

如果它是字符串,则必须像这样定义为数组

$jenis = array($_GET['jenis']); 

你可以使用in_array

【讨论】:

    【解决方案2】:

    正如您的错误所说,您正在尝试为in_array() 传递字符串而不是数组。请查看this 以更好地了解in_array()

    根据你的代码

    if (!isset($_GET['jenis'])) {
        $jenis =  array(); //<--- have empty array be default.
    } else {
        $jenis = (array) $_GET['jenis']; //<---- change this line. You can typecast to array if you are getting only one value.
    }
    

    【讨论】:

      【解决方案3】:

      第二个参数需要是一个数组,并且你传递的是字符串而不是数组。

      是这样的in_array("value_you_wanna_look",$array)

      $_GET['jenis'] 是字符串值而不是数组。

      您可以像这样检查 $jenis 的值

      <?php if ($jenis=="11") echo "checked"; ?> // and so on for other values
      

      像这样在数组中输入值:

      $jenis = array($_GET['jenis']);
      

      【讨论】:

        【解决方案4】:

        为了使用in_array(),你必须确保你的第二个参数是一个数组,你提供一个字符串作为第二个参数。

        原因是当$jenis由表单设置时,它已经是一个数组,你如何定义它,但是在发布表单之前$jenis没有设置,因此它将在线设置一个空字符串2.

        您只需将第 2 行更改为 $jenis = array();

        良好的做法是确保变量始终具有相同的类型或为空。它通常可以防止此类错误(在复杂情况下也可能难以测试)。

        【讨论】:

          猜你喜欢
          • 2021-03-27
          • 2017-08-26
          • 1970-01-01
          • 2013-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多