使用键向数组添加值

时间:2016-02-29 19:19:48

标签: php arrays wordpress

我的wordpress中有一个代码:

SELECT  ltrim(rtrim(CHARINDEX ( 'Home Phone:' ,notes, 0) + LEN('Home Phone: '))) as 'beggining',
        ltrim(rtrim(CHARINDEX ( CHAR(10) ,notes, 0)))   as 'ending',
        SUBSTRING(notes,(CHARINDEX ( 'Home Phone:' ,notes, 0) + LEN('Home Phone: ')),(LEN('Home Phone: '))) as 'home phone',    
FROM    table a 

当变量$ wiadomosci不存在时,我正在创建一个数组。 $ topic是cateogory ID。所以我得到了这个:

        $wiadomosci = get_user_meta($user->ID,'wiadomosci', false);
        if($wiadomosci) {
            array_push($wiadomosci[$topic], $post->ID);
            update_user_meta($user->ID, 'wiadomosci', $wiadomosci);
        } else {
            $wiadomosci = array($topic => array($post->ID));
            add_user_meta($user->ID, 'wiadomosci', $wiadomosci);
        }

8是类别ID,139是帖子ID。现在当变量$ topic为8时,我想添加帖子ID(例如140)并得到这个:

Array
(
[0] => Array
    (
        [8] => Array
            (
                [0] => 139
            )

    )

但我得到了这个:

Array
(
[0] => Array
    (
        [8] => Array
            (
                [0] => 139
                [1] => 140
            )

    )

)

我试过替换

Array
(
[0] => Array
    (
        [0] => Array
            (
                [8] => Array
                    (
                        [0] => 139
                    )

            )

        [8] => 
    )

)

使用:

array_push($wiadomosci[$topic], $post->ID);

但它不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

问题是wp_get_post_meta( ..., false )返回一个数组 - false表示元数是多个。将最后一个参数更改为true,您应该设置。

答案 1 :(得分:-1)

如果你在别人身上这样做了吗?

$wiadomosci = array($topic => $post->ID);

答案 2 :(得分:-1)

好的,我已经解决了。这是代码:

        $wiadomosci = get_user_meta($user->ID,'wiadomosci', false);
        if($wiadomosci) {
            $tmp = $wiadomosci[0][$topic];
            $tmp[] = $post->ID;
            $wiadomosci[0][$topic] = $tmp;
            update_user_meta($user->ID, 'wiadomosci', $wiadomosci[0]);
        } else {
            $wiadomosci = array($topic => array($post->ID));
            add_user_meta($user->ID, 'wiadomosci', $wiadomosci);
        }