$post = &$_POST;
$arr = $post['articles'];
var_dump($arr);
//array (size=3) 0 => string '145' (length=3) 1 => string '123' (length=3) 2 => string '128' (length=3)
$sArr = serialize($arr);
var_dump($sArr);
//string 'a:3:{i:0;s:3:"145";i:1;s:3:"123";i:2;s:3:"128";}' (length=48)
die();
我有一个数组,我希望序列化以存储在我的数据库中。
但是输出不是预期的,我需要一个像:
这样的字符串{145, 123, 128}
但是添加了一些其他数据 - 为什么以及如何删除它?
答案 0 :(得分:9)
原因可以在PHP documentation中找到。它说
用于在周围存储或传递PHP值而不会丢失其 类型和结构
所以serialize函数也必须编码值类型等。我猜测i
是索引,而s
是类型"字符串"。
要获得结果,请改用implode
。
答案 1 :(得分:7)
您可以将json_encode
用于任何复杂数据及其标准。
<?php
$arr=[145, 123, 128];//considering your input is like this
echo json_encode($arr);
?>
这将完全回答
[145, 123, 128]
如果你需要花括号那么多,你可以使用它
echo '{'.substr(json_encode($arr),1,-1).'}';
答案 2 :(得分:2)
加入会做出魔术:
$sArr = '{' . join(', ', $arr) . '}';
答案 3 :(得分:2)
你试过了吗?
$sArr = implode(",", $arr);