php - 将 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 = 两者
解决方案
包装字符串array()
不会将其拆分为数组。你可以使用explode()
它,或者一些简单的东西:
$map = array(1 => 'north', 2 => 'south', '1,2' => 'both');
$this->site = $map[$r['site']];
但是,将逗号分隔的列表存储在单个数据库列中并不是一个好主意。这会变得一团糟,假设您还有East和West或North 1和North 2等。
推荐阅读
- javascript - 如果未安装桌面应用程序,Viber 不会重定向到主页
- google-apps-script - GAS 与 cors 和从 html 获取数据到电子表格的问题有关
- laravel - Laravel 没有为某些用户发送重置密码电子邮件
- python - 我正在使用 Webbrowser 库自动化 whatsapp,但我遇到了问题
- css - 在嵌套类导航上应用悬停
- python - 如何用另一个替换所有年份的值?
- curl - 如何在 puppeteer 中绕过 Cloudflare bot 保护
- github - Github actions 如何在两台服务器上配置两个运行器
- podio - Podio - 是否可以为项目分配所有者/创建者?
- spring-boot - 使用 JPA 规范区分特定列