我正在创建一个节日网络应用程序,我们有两个不同的站点。车辆可以驶向“北方”,“南方”或“两者”。
MySQL表存储以逗号分隔的列表,其值分别为“ 1”,“ 2”或“ 1,2”。
基本上,我需要变量$ site是; 北 南 要么 两者
我尝试了以下操作(以及其他lsot迭代),但无法获得所需的输出
$a = array($r['site']);
if (in_array(array('1', '2'), $a)) {
$this->site = 'both';
}
if (in_array('1', $a)) {
$this->site = 'north';
}
if (in_array('2', $a)) {
$this->site = 'south';
}
所需结果是$ this-> site等于;
1 =北
2 =南
1,2 =两者
答案 0 :(得分:0)
在array()
中包装字符串不会将其拆分为数组。您可以在其上使用explode()
或简单的方法:
$map = array(1 => 'north', 2 => 'south', '1,2' => 'both');
$this->site = $map[$r['site']];
但是,将逗号分隔的列表存储在单个数据库列中并不是一个好主意。假设您也有 East 和 West 或 North 1 和 North 2 等,这很混乱。