我正在尝试将以下数组添加到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 VALUE 1-1<br>
s:11:"target"; a:1:{ ## ARRAY 2 [2 ELEMENTS]<br><br>
-->KEY VALUE 1-2 <br>
i:0; a:1:{ ## ARRAY 3 [2 ELEMENTS]<br><br>
-->KEY VALUE 2-1 <br>
i:1; a:3:{ ## ARRAY 3 [4 ELEMENTS]<br><br>
-->KEY VALUE 3-1 <br>
s:5:"param"; s:13:"page_selected";<br><br>
-->KEY VALUE 3-2 <br>
s:8:"operator"; s:2:"==";<br><br>
-->KEY VALUE 3-3 <br>
s:5:"value"; a:5:{ ## ARRAY 4 [6 ELEMENTS]<br><br>
-->KEY VALUE 4-1 <br>
i:3001; s:13:"Service Areas";<br><br>
-->KEY VALUE 4-2 <br>
i:1098; s:19:"Water Slide Rentals";<br><br>
-->KEY VALUE 4-3 <br>
i:672; s:15:"Chairs & Tables";<br><br>
-->KEY VALUE 4-4 <br>
i:205; s:4:"Home";<br><br>
-->KEY VALUE 4-5 <br>
i:1401; 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>
?>"
谢谢你的帮助
最合适的回答,由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,
)