in_array没有按预期工作

时间:2014-10-30 09:39:18

标签: php arrays

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

然而它不起作用?

我尝试了几种方案:

$this->item->tour_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,但没有运气。

提前感谢您的帮助 强尼

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

$this->item->tour_days是一个包含1,2,3

的数组

那你为什么要用它制作另一个数组呢?

删除$array = array($days);转换。

而是说$array = $days;

答案 3 :(得分:0)

这应该适合你:

如果$days是一个字符串,那么使用:     

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

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

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


?>

如果$days已经是数组,请使用:

<?php

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

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


?>