在Wordpress中,我有一些带有此形式字符串的 meta_key 字段,来自序列化数组,具有可变长度:
public: using B::var;
我需要将它们复制到其他帖子 meta_key 字段,但采用以下格式:
a:2:{i:0;i:281;i:1;i:282;}
我该怎么做?
我的代码:
[281,282]
P.S。我向那些对我的问题感到愤怒的人道歉!我不是PHP程序员,我根本不是程序员,但我需要解决这个问题。
我检查了@Machavity的推荐答案,它们非常有教育意义,但这并没有帮助我解决问题。
[解决]
我感谢所有试图帮助我的人:@AbraCadaver,@ Anant,@ ManinderpreetSingh,@ ShaktiPhartiyal,当然还有@Machavity!:)
答案 0 :(得分:2)
您必须使用unserialize()函数,然后连接输出以创建类似格式的数组: 您可以使用:
<?php
$sData = 'a:2:{i:0;i:281;i:1;i:282;}';
$uData = unserialize($sData);
$arrFormat = "[".implode(",",$uData)."]";
echo $arrFormat;
这会给你输出:
[281,282]
答案 1 :(得分:0)
以下是我在Wordpress plugin中找到的有效解决方案:
...
$attachments = get_posts( $args );
if ($attachments) {
$attachmentIds = array();
foreach ( $attachments as $attachment ) {
$attachmentIds[] = $attachment->ID;
}
$dirty_ordered_keys = $attachmentIds;
$length = sizeof($dirty_ordered_keys);
$clean_ordered_keys = array();
for ( $i = 0; $i < $length; $i++ ) {
$clean_ordered_keys[$i] = intval($dirty_ordered_keys[$i]);
}
$clean_ordered_keys_json = json_encode($clean_ordered_keys);
$data['meta_input']['advert_post_attachments'] = $clean_ordered_keys_json;