我想将以下数组存储在mySQL表的单个文本字段中:
$user_rating[0] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 1',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[1] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 2',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[2] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 3',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[3] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 4',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[4] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 5',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[5] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 6',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
$user_rating[6] = array('percent' => 'XXXXXXXXXXXXXXXXX',
'category' => 'Category 7',
'description' => 'XXXXXXXXXXXXXXXXX',
'link' => 'XXXXXXXXXXXXXXXXX',
'thumbnail' => 'XXXXXXXXXXXXXXXXX');
我相信我还需要破坏关联数组才能实现这个目标但是遇到了一些麻烦。
欢迎任何其他/更好的阵列结构解决方案。
由于
答案 0 :(得分:2)
首先,您不需要指定有序的数字键,只需写:
$user_rating[] = array();
其次,为什么要将整个数组存储为字符串?为什么不将它的每个字段存储为s列?这不是一个选择吗?
第三,您可以在数据库中存储序列化数组(或任何数据)。
serialize($user_rating);
store_to_db();
...
$handler = unserialize(get_data_out());
但是,如果你想将它存储为直线字符串,那就更复杂了。您必须循环遍历数组并单独附加键和值。
答案 1 :(得分:1)
您可以使用PHP的serialize
将数组转换为单个字符串。从数据库中检索时,可以使用unserialize
将其转换回数组。
答案 2 :(得分:0)
你考虑过JSON吗?如果你想坚持一个领域,这可能是你最好的选择。
PHP - JavaScript Object Notation
编辑或者更好,请阅读(并投票)以下评论,因为serialize
是原生函数。
答案 3 :(得分:0)
肯定有更好的解决方案 将此数据作为单独的记录存储在专用表中 这就是关系数据库的用途。