[英]How do I update serialized data in a MySQL database using PHP?
Here is a serialized data stored in MySQL database: 这是存储在MySQL数据库中的序列化数据:
sizes_0#10_1$shape_0#20$bannertype_0#20$sizes_1#1_3$shape_1#20$
How do I remove sizes1
from the above data? 如何从上述数据中删除
sizes1
?
First you should de-serialize the data: 首先,您应该反序列化数据:
$string = 'sizes_0#10_1$shape_0#20$bannertype_0#20$sizes_1#1_3$shape_1#20$';
function custom_unserialize($string) {
return array_map(function($token) {
return explode('#', $token);
}, explode('$', $string));
}
$data = custom_unserialize($string);
then you can remove the sizes1
entry: 然后您可以删除
sizes1
条目:
$data_without_sizes_1 = array_filter($data, function($data) {
return $data[0] !== 'sizes_1';
});
finally you can serialize the data again: 最后,您可以再次序列化数据:
function custom_serialize(array $data) {
return implode('$', array_map(function($entry) {
return implode('#', $entry);
}, $data));
}
$serialized_string = custom_serialize($data_without_sizes_1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.