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我猜他只是认为它是一个数组,因为它是一行中的几个数字,用逗号分隔。我不是说他是。。。我是说,在我们向用户澄清之前,您无法确定您的答案