Add Array record to Meta Post

时间:2019-02-27 作者:Rob Guay

我正在尝试将以下数组添加到meta post表中

"a:2:{s:11:"target";a:1:{i:0;a:1:{i:1;a:3:{s:5:"param";s:13:"page_selected";s:8:"operator";s:2:"==";s:5:"value";a:5:{i:3001;s:13:"Service Areas";i:1098;s:19:"Water Slide Rentals";i:672;s:15:"Chairs & Tables";i:205;s:4:"Home";i:1401;s:29:"Bounce House Rental Armada MI";}}}}s:15:"sgpb-conditions";N;}"
我将数组分解如下

a:2:{  ##  ARRAY 1 [3 ELEMENTS]<br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 1-1<br>
s:11:"target";&nbsp;&nbsp;&nbsp;a:1:{ ##  ARRAY 2 [2 ELEMENTS]<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 1-2 <br>
   i:0;&nbsp;&nbsp;&nbsp;a:1:{    ##  ARRAY 3 [2 ELEMENTS]<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 2-1 <br>
   i:1;&nbsp;&nbsp;&nbsp;a:3:{ ##  ARRAY 3 [4 ELEMENTS]<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 3-1 <br>
s:5:"param";&nbsp;&nbsp;&nbsp;s:13:"page_selected";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 3-2 <br>
s:8:"operator";&nbsp;&nbsp;&nbsp;s:2:"==";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 3-3 <br>
s:5:"value";&nbsp;&nbsp;&nbsp;a:5:{ ##  ARRAY 4 [6 ELEMENTS]<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 4-1 <br>
i:3001;&nbsp;&nbsp;&nbsp;s:13:"Service Areas";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 4-2 <br>
i:1098;&nbsp;&nbsp;&nbsp;s:19:"Water Slide Rentals";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 4-3 <br>
i:672;&nbsp;&nbsp;&nbsp;s:15:"Chairs & Tables";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 4-4 <br>
i:205;&nbsp;&nbsp;&nbsp;s:4:"Home";<br><br>
 -->KEY&nbsp;&nbsp;&nbsp;VALUE 4-5 <br>
i:1401;&nbsp;&nbsp;&nbsp;s:29:"Bounce House Rental Armada MI";<br><br>

} <!-- ENDS ARRAY 5 --><br>
} <!-- ENDS ARRAY 4 --><br>
} <!-- ENDS ARRAY 3 --><br>
} <!-- ENDS ARRAY 2 --><br>
s:15:"sgpb-conditions";N;}  <!-- ENDS ARRAY 1 --><br>
^^^^^^^^^^^^^^^^^^^^^^^^^^

我的问题是关于第一个问题,我对数组有一个完整的了解。不确定最后的值如何绑定到数组中。此外,数组是基于零的,对吗?

这是我迄今为止创建的用于添加数组的代码,它没有正确创建数组。

"<?php<br>
$poddata = Array(<br>
\'sgpb-target\',<br>
Array (<br>
    1 => Array(<br>
\'param\' => \'page_selected\',<br>
\'operator\' => \'==\',<br>
\'value\' => Array(<br>
                3001 => \'Service Areas\',<br>
                1098 => \'Water Slide Rentals\',<br>
                672 => \'Chairs & Tables\',<br>
                1401 => \'Bounce House Rental Armada MI\',<br>
                676 => \'Mobile Gaming Trucks\'<br>
                ))));<br>
<br>
update_post_meta(6668, \'poddata\', $poddata);<br>
?>"  
谢谢你的帮助

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

原始值是serialised 大堆如果要查看原始阵列,可以使用unserialize() 功能或类似网站https://www.unserialize.com. 问题是,这对数组不起作用,因为序列化的值无效。

问题在于:

s:11:"target"
“Target”是6个字母,因此需要:

s:6:"target"
如果在PHP中正确序列化和取消序列化,则不会发生这种情况,但如果试图手动编辑数据,则很容易出错。一般来说,手工编辑序列化数据是个坏主意。

无论如何,我假设您想插入一个有效的数组,所以当您修复该问题并取消序列化时,它看起来是这样的:

array(
    \'target\' => array(
        0 => array (
            1 => array(
                \'param\'    => \'page_selected\',
                \'operator\' => \'==\',
                \'value\'    => array(
                    3001 => \'Service Areas\',
                    1098 => \'Water Slide Rentals\',
                    672  => \'Chairs & Tables\',
                    205  => \'Home\',
                    1401 => \'Bounce House Rental Armada MI\',
                ),
            ),
        ),
    ),
    \'sgpb-conditions\' => NULL,
)

相关推荐

网站警告:CALL_USER_FUNC_ARRAY()要求参数1是有效的回调,类‘WPPR_Public’没有方法‘amp_Support’

警告:call_user_func_array() 要求参数1为有效回调,类“Wppr\\u Public”在/home1/thrfolde/Public\\u html/3foldtraining/wp includes/class wp hook中没有方法“amp\\u support”。php在线288如何解决此错误?https://3foldtraining.com/ - 在顶部标题上(如果双击黑条,可以看到该错误) // Avoid the array_slice if p