首页 > 解决方案 > 将 MySql 逗号分隔值转换为 PHP 值

问题描述

我正在创建一个节日网络应用程序,我们有两个不同的站点。车辆可以来“北”、“南”或“两者”。

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 = 两者

标签: phpmysql

解决方案


包装字符串array()不会将其拆分为数组。你可以使用explode()它,或者一些简单的东西:

$map = array(1 => 'north', 2 => 'south', '1,2' => 'both');
$this->site = $map[$r['site']];

但是,将逗号分隔的列表存储在单个数据库列中并不是一个好主意。这会变得一团糟,假设您还有EastWestNorth 1North 2等。


推荐阅读