Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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 in_阵列未按预期工作_Php_Arrays - Fatal编程技术网

Php in_阵列未按预期工作

Php in_阵列未按预期工作,php,arrays,Php,Arrays,所以我有一个非常简单的片段。我研究了in_array命令,发现它正是我所需要的 但是它不起作用吗 我尝试了几种方案: $this->item->tour\u days是一个包含1,2,3的数组 测试1 $days = $this->item->tour_days; $array = array($days); if (in_array(2,$array,TRUE)) { echo 'Tuesday'; } 测试2 $days

所以我有一个非常简单的片段。我研究了
in_array
命令,发现它正是我所需要的

但是它不起作用吗

我尝试了几种方案:


$this->item->tour\u days
是一个包含1,2,3的数组

测试1

    $days = $this->item->tour_days;

    $array = array($days);

    if (in_array(2,$array,TRUE)) {

    echo 'Tuesday';

    } 
测试2

    $days = $this->item->tour_days;

    $array = array($days);

    if (in_array(2,$array)) {

    echo 'Tuesday';

    } 
测试3

    $days = $this->item->tour_days;

    $array = array($days);

    if (in_array('2',$array)) {

    echo 'Tuesday';

    } 
我尝试从csv中回显星期二,其中星期二=2,但没有成功

在此先谢谢你的帮助
jonny

要将包含逗号分隔列表的字符串转换为数组,请使用
分解

$array = explode(',', $days);
试试这个:

$array = explode(",",$days);

$this->item->tour\u days
是一个包含1,2,3的数组

那么,为什么要从中生成另一个数组呢

删除
$array=array($days)对话


改为说
$array=$days

这应该适用于您:


如果
$days
是一个字符串,则使用该字符串:
    $days = "1,2,3";  //$this->item->tour_days;

    $array = explode(',', $days);

    if(in_array(2, $array))
        echo "Tuesday";


?>
如果
$days
已经是一个数组,请使用以下命令:

    $days = "1,2,3";  //$this->item->tour_days;

    $array = explode(',', $days);

    if(in_array(2, $array))
        echo "Tuesday";


?>
<?php

    $days = array(1,2,3);  //$this->item->tour_days;

    if(in_array(2, $days))
        echo "Tuesday";


?>


如果我回显$days,则得到1,2,3。那为什么呢?这是奇怪还是我完全脑死亡了?
$days
是一个字符串,而不是数组。使用
explode()
获得一个值数组。若运行
print\r($this->item->tour\u days),会得到什么结果?如果$days是包含1、2、3。。。为什么要这样做:
$array=array($days)@ialarmedalien谁否决了我的问题?为什么?有什么我做错了吗?@AresDraguna查看他的评论,他说
echo$days
打印
1,2,3
。由于
echo
不适用于数组,所以它必须是字符串。我知道,但他说:
$this->item->tour\u days
是一个包含1,2,3的数组。我知道他说了什么,但他错了。他显然不知道数组和字符串之间的区别。@AresDraguna我猜他只是认为它是一个数组,因为它是一行中的几个数字,用逗号分隔。我不是说他是。。。我是说,在我们向用户澄清之前,您无法确定您的答案