can';t取消序列化-PHP7.1.22

can';t取消序列化-PHP7.1.22,php,string,serialization,Php,String,Serialization,我使用PHP core serialize序列化关联数组 $additional_email = serialize($customer->getData('addtionalemail')); 然后将该值保存到Mysql数据库中 s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-sen

我使用PHP core serialize序列化关联数组

$additional_email = serialize($customer->getData('addtionalemail'));
然后将该值保存到Mysql数据库中

s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-send";a:1:{i:0;s:1:"0";}s:8:"apply_to";a:1:{i:0;s:1:"0";}s:10:"initialize";s:4:"true";}}}";
当我取消序列化上述值时,它不起作用。在序列化和取消序列化之前,我使用了诸如base_64_编码和解码之类的解决方案,但这并没有解决问题,也使用了preg_匹配解决方案,但运气不佳


我使用,这也将无法取消序列化上述字符串。序列化的值有问题,有人能给我指出正确的方向吗?

看起来您不知何故将值序列化了两次。运行两次
unserialize
将撤消以下操作:

print_r(unserialize(unserialize('s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-send";a:1:{i:0;s:1:"0";}s:8:"apply_to";a:1:{i:0;s:1:"0";}s:10:"initialize";s:4:"true";}}}";')));
输出:

Array (
  [0] => Array (
    [0] => Array (
      [additional_email] => test@test.com
      [record_id] => 0
      [apply_to-prepared-for-send] => Array (
         [0] => 0 
      )
      [apply_to] => Array (
        [0] => 0
      )
      [initialize] => true
    )
  )
)

您在
$customer->getData('addationalemail')
中有什么内容?你能给我们看看吗?