将PHP数组转换为字符串的最佳方法是什么? 我有变量$type,它是一个类型数组。
$type = $_POST[type];
我想把它作为一个单独的字符串存储在我的数据库中,每个条目由|分隔:
Sports|Festivals|Other
将PHP数组转换为字符串的最佳方法是什么? 我有变量$type,它是一个类型数组。
$type = $_POST[type];
我想把它作为一个单独的字符串存储在我的数据库中,每个条目由|分隔:
Sports|Festivals|Other
当前回答
不,你不想把它作为一个字符串存储在数据库中。
您可以使用serialize(),但这将使您的数据更难搜索,更难处理,并浪费空间。
你也可以做一些其他的编码,但通常也会遇到同样的问题。
你有一个DB的全部原因是你可以完成这样琐碎的工作。你不需要一个表来存储数组,你需要一个可以表示为数组的表。
例子:
id | word
1 | Sports
2 | Festivals
3 | Classes
4 | Other
你可以简单地用SQL从表中选择数据,而不是有一个像这样的表:
id | word
1 | Sports|Festivals|Classes|Other
这不是任何人在关系数据库中设计模式的方式,它完全违背了它的目的。
其他回答
使用内爆
implode("|",$type);
$data = array("asdcasdc","35353","asdca353sdc","sadcasdc","sadcasdc","asdcsdcsad");
$string_array = json_encode($data);
现在您可以将这个$string_array值插入到数据库中
你可以使用serialize:
$array = array('text' => 'Hello world', 'value' => 100);
$string = serialize($array); // a:2:{s:4:"text";s:11:"Hello world";s:5:"value";i:100;}
并使用unserialize将字符串转换为数组:
$string = 'a:2:{s:4:"text";s:11:"Hello world";s:5:"value";i:100;}';
$array = unserialize($string); // 'text' => 'Hello world', 'value' => 100
不,你不想把它作为一个字符串存储在数据库中。
您可以使用serialize(),但这将使您的数据更难搜索,更难处理,并浪费空间。
你也可以做一些其他的编码,但通常也会遇到同样的问题。
你有一个DB的全部原因是你可以完成这样琐碎的工作。你不需要一个表来存储数组,你需要一个可以表示为数组的表。
例子:
id | word
1 | Sports
2 | Festivals
3 | Classes
4 | Other
你可以简单地用SQL从表中选择数据,而不是有一个像这样的表:
id | word
1 | Sports|Festivals|Classes|Other
这不是任何人在关系数据库中设计模式的方式,它完全违背了它的目的。
对于存储关联数组,您可以使用serialize:
$arr = array(
'a' => 1,
'b' => 2,
'c' => 3
);
file_put_contents('stored-array.txt', serialize($arr));
并使用unserialize加载:
$arr = unserialize(file_get_contents('stored-array.txt'));
print_r($arr);
但是如果需要用数组创建动态的.php文件(例如配置文件),你可以使用var_export(…,正确);,像这样:
保存于文件:
$arr = array(
'a' => 1,
'b' => 2,
'c' => 3
);
$str = preg_replace('#,(\s+|)\)#', '$1)', var_export($arr, true));
$str = '<?php' . PHP_EOL . 'return ' . $str . ';';
file_put_contents('config.php', $str);
获取数组值:
$arr = include 'config.php';
print_r($arr);