正在分析PHP对象中的信息



我需要一些帮助来解析表单中显示的信息。现在,当使用基本数组时,地址返回为"3 Columbus PlaceApt1",其中地址1和地址2连接在一起返回。我创建了一个对象,用print_r 返回这个

a:2:{
    s:18:"_gravity_form_lead";a:16:{
        s:4:"19.1";s:28:"Stamford PD Extra Duty Order";s:4:"19.2";s:5:"$0.00";s:4:"19.3";s:0:"";s:3:"9.1";s:16:"3 Columbus Place";s:3:"9.2";s:5:"Apt 1";s:3:"9.3";s:0:"";s:3:"9.4";s:11:"Connecticut";s:3:"9.5";s:0:"";s:3:"9.6";s:13:"United States";i:22;s:14:"(203) 123-4567";i:12;s:10:"2016-05-24";i:13;s:8:"12:35 am";i:20;s:8:"8|584.64";i:11;s:9:"MH6151684";i:21;s:1:"3";i:18;s:7:"1753.92";}s:18:"_gravity_form_data";a:15:{s:2:"id";s:1:"6";s:13:"display_title";b:0;s:19:"display_description";b:0;s:25:"disable_woocommerce_price";s:3:"yes";s:12:"price_before";s:0:"";s:11:"price_after";s:0:"";s:20:"disable_calculations";s:2:"no";s:22:"disable_label_subtotal";s:3:"yes";s:21:"disable_label_options";s:3:"yes";s:19:"disable_label_total";s:2:"no";s:14:"disable_anchor";s:2:"no";s:14:"label_subtotal";s:8:"Subtotal";s:13:"label_options";s:7:"Options";s:11:"label_total";s:5:"Total";s:8:"use_ajax";s:2:"no";
    }
}

我想解析我们的s:16和s:5,但我不知道该怎么做。任何帮助都感谢

编辑

未序列化字符串:

array ( '_gravity_form_lead' => array ( '19.1' => 'Stamford PD Extra Duty Order', '19.2' => '$0.00', '19.3' => '', '9.1' => '3 Columbus Place', '9.2' => 'Apt 1', '9.3' => '', '9.4' => 'Connecticut', '9.5' => '', '9.6' => 'United States', 22 => '(203) 123-4567', 12 => '2016-05-24', 13 => '12:35 am', 20 => '8|584.64', 11 => 'MH6151684', 21 => '3', 18 => '1753.92', ), '_gravity_form_data' => array ( 'id' => '6', 'display_title' => false, 'display_description' => false, 'disable_woocommerce_price' => 'yes', 'price_before' => '', 'price_after' => '', 'disable_calculations' => 'no', 'disable_label_subtotal' => 'yes', 'disable_label_options' => 'yes', 'disable_label_total' => 'no', 'disable_anchor' => 'no', 'label_subtotal' => 'Subtotal', 'label_options' => 'Options', 'label_total' => 'Total', 'use_ajax' => 'no', ), )

你这么做太难了!

这是WordPress。你不需要获得一个记录,不需要对其进行序列化,也不需要对结构进行猜测,等等。

相反,可以使用get_option或get_postmeta函数来获取所需的信息。

此外,还有WooCommerce和Gravity Forms的文档,将解释如何获得您想要的信息-但是,这有点像XY问题-您已经询问了如何解析数组(序列化)-但实际上您正在尝试做其他事情。你应该问这个问题,而不是这个问题的细节。

如果必须手动执行此操作,请不要使用unserialize。相反,使用WordPress函数maybe_unseralize

最后,Gravity Forms存储记录的方式是一个主要的麻烦。将其存储方式映射到您在表单中设置的"表单字段"非常困难,除非您使用Gravity Forms API,这会使其更好。

您必须取消数组的序列化才能获得所需的数据。像这样:

$formData = unserialize($var);
// This is Address1
echo $formData['_gravity_form_lead']['9.1'];
echo "<br/>";
// This is Address2
echo $formData['_gravity_form_lead']['9.2'];

最新更新