Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php程序中的错误输出_Php - Fatal编程技术网

php程序中的错误输出

php程序中的错误输出,php,Php,下面是我的代码,实际上o/p应该是hi,但它没有给出 <?php $arr=array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); $c='xyz,ccc'; if(in_array(isset($c) && $c,$arr)) { echo 'hi'; } else { echo

下面是我的代码,实际上o/p应该是hi,但它没有给出

<?php

    $arr=array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    $c='xyz,ccc';

    if(in_array(isset($c) && $c,$arr))
    {
        echo 'hi';
    }
    else 
    {
        echo 'no';
    }

?>

输出:hi

实际结果应为“否”。

将代码更改为:

<?php

    $arr=array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    $c='Sunday,Monday';

    if(in_array(isset($c) && $c,$arr))
    {
        echo 'hi';
    }
    else 
    {
        echo 'no';
    }

或者,如果您想测试不同的日期,请选择第二个选项

<?php
    $listDays=array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    $dayToTest='Sunday, Monday'; //Here we have multiple days

    $tabTest = preg_split(',', $day); //split into an array

    //Then test for each string in tabTest
    foreach($tabTest as $string)
    {
         if(true === in_array($string, $listDays))
         {
            echo $string.' is OK';
         }
         else 
         {
            echo 'no';
         }
    }


?>

旁注,这是错误的代码:

in_array(isset($weekendArr) && $weekendArr,$arr)
喜欢吗

isset($weekendArr) && in_array($weekendArr,$arr)
而in_数组并不严格,所以

in_array(true,array('w','s'))
永远都是真的

使用以下工具进行操作:

in_array(true,array('w','s'),true)
你看

你不能用数组检查数组,这里的$pinder是一个字符串。 唯一的解决方案是将字符串拆分为两个值,然后检查两次是否为TRUE

$c='Sunday,Monday';
foreach(explode(',',$c) as $check){
  if(in_array($c,$arr,true))
  {
    echo $check.' is in array';
  }
  else 
  {
    echo $check.' is NOT in array';
  }
}

希望这有点帮助。

但是。。。。您没有在任何地方设置/定义
$weekendArr
,通常您的代码在语法和意义上都很混乱,为什么要在数组()中使用&&in
?我强烈建议您回到教程。您的$weekendArr和$arr在哪里?粘贴完整的代码。它应该是$c,而不是$weekendArri想要高结果。。如果所有元素都在定义的数组中,请立即运行编辑的代码。如果我想选择我添加的多个选项并举例多天,则不确定它是您想要的。
(在数组中(isset($c)&$c,$arr))
这没有任何意义!in_数组的第一个参数将是布尔值,这不是预期的。
$c='Sunday,Monday';
foreach(explode(',',$c) as $check){
  if(in_array($c,$arr,true))
  {
    echo $check.' is in array';
  }
  else 
  {
    echo $check.' is NOT in array';
  }
}