Php 将多个列转换为一个数组

Php 将多个列转换为一个数组,php,mysql,Php,Mysql,我正在寻找转换以下数据的方法: (existing table) client | red | green | blue | shiny | damaged tom | 0 | 0 | 1 | 1 | 0 john | 1 | 1 | 0 | 0 | 1 我创建了一个新表,我想用它“替换”旧表列: id | name 1 | red 2 | green 3 | blue 4 | shiny 5 | broken

我正在寻找转换以下数据的方法:

(existing table)
client | red | green | blue | shiny | damaged
tom    | 0   |   0   |   1  |   1   |    0
john   | 1   |   1   |   0  |   0   |    1
我创建了一个新表,我想用它“替换”旧表列:

id | name
1  | red
2  | green
3  | blue
4  | shiny
5  | broken
有效地做到这一点

client | colors
tom    | [{1,0},{2,0},{3,1},{4,1},{5,0}]
john   | [{1,1],{2,1},{3,0},{4,0},{5,1}]
然后在我的php脚本中,我可以解码数组并相应地格式化数据

有什么想法吗?或者我只是把每个人都搞糊涂了


谢谢

我真的搞不懂你的问题。为什么您需要这种格式的数据?从关系的角度来看,这是完全无用的。在我们的帮助下,你似乎想从一个糟糕的设计变成一个更糟糕的设计。我不愿意这样做,因为看起来你们想要有一个多对多的关系,通常涉及三张桌子。一个用于颜色,一个用于客户端,另一个用于包含元数据(如计数)的选项之间的关系。我真的在尝试找到一种方法,以便能够轻松添加其他“选项”(颜色),而无需返回并手动指定这些选项以在许多不同的页面上列出它们,例如编辑页面,等等,我不认为这是一个真正的多对多的情况。基于颜色“红”、“绿”、“蓝”,我相信OP试图将每个客户的颜色表示为三种原色RGB的组合。我进一步怀疑OP想要的不是更改其底层数据库结构,而是用于操作这些值的用户界面。