使用UPDATE_POST_META更新关联数组的值

时间:2014-02-21 作者:Towfiq

我正在尝试更改保存在post meta中的关联数组的特定键的值。以下是我的数组保存在自定义字段中的方式:

Array ( 
    [0] => Array (
        [321] => Zedity is an innovative content Editor to create posts or pages
    )
    [1] => Array (
        [310] => A shortcode that includes other posts
    )
)
以下是我尝试更新键321的值的方式:

global $post;
$postid = $post->ID;
$add_to_ID = $_POST[\'wpd_plugin_note_id\'];
$note = $_POST[\'wpd_plugin_note\'];

$existing_list = get_post_meta($postid, \'my_list_items\', TRUE );

foreach ($existing_list as $key => $value) {
    $existing_list[$key][$add_to_ID] = $note;
}    
update_post_meta($postid,\'my_list_items\',$existing_list);
它可以工作,但在更新之后,数组如下所示,不是更新键321的值,而是将键=值对添加2次:

Array ( 
    [0] => Array (
        [321] => my new value for 321
    ) 
    [1] => Array (
        [310] => A shortcode that includes other posts
        [321] => my new value for 321
    )
)
有人能告诉我我做错了什么吗?谢谢

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

这是纯PHP(逻辑):

foreach ($existing_list as $key => $value)
    if (isset($existing_list[$key][$add_to_ID]))
        $existing_list[$key][$add_to_ID] = $note;
您之前所做的不是为每个元素使用键321更新子元素,而是set 每个元素都具有特定键的子元素—本质上是:在已经定义的地方更新,否则定义。

结束

相关推荐

如何编辑子主题中的unctions.php

我正在为我的网站使用wordpress。我用的是一个叫做“滨海”的主题。我制作了一个子主题文件夹并创建了一个样式。包含所需行的css。“我的孩子”主题运行良好。我有功能。php在我的原始主题中。我想编辑其中的一个函数,它在文章下面创建一个作者框。我听说我们可以在子主题函数中创建一个新函数。php,但无法编辑现有函数。我不想在主主题文件夹中编辑功能。php文件。因为明天如果我更新的话,就会产生问题。