WordPress的:array_push在前一个数组内创建数组

时间:2019-03-05 16:22:25

标签: php wordpress array-push

我想在WordPress usermeta上创建array()上具有用户喜欢的帖子的数据,他可以将其添加到此元favorite中。

如果我在array_push()上使用get_user_meta(),则该数组嵌套在后续数组中。

my_operation(){    
   $meta_user_favorite = get_user_meta($user_id,"favorite");   
   array_push($meta_user_favorite, $post_id);    
   update_user_meta( $user_id, "favorite", $meta_user_favorite);  
}

经过几次这样的操作,这是我在var_dump($meta_user_favorite);中得到的结果

array(1) {
  [0]=>
  array(2) {
    [0]=>
    array(2) {
      [0]=>
      array(2) {
        [0]=>
        array(1) {
          [0]=>
          int(726)
        }
        [1]=>
        int(713)
      }
      [1]=>
      int(710)
    }
    [1]=>
    int(688)
  }
}

应该在一个数组中,我在做什么错了?

array(1) {
      [0]=>int(726)
      [0]=>int(713)
      [0]=>int(710)
      [0]=>int(688)
}

1 个答案:

答案 0 :(得分:1)

看看get_user_meta()的文档。您要省略的第三个参数是$single,默认为false,它确定是返回数组还是返回值。如果您将true传递给它(说实话,在处理用户和后置meta时,我用了95%的用例),它应该可以工作。

my_operation(){
    $meta_user_favorite = get_user_meta( $user_id, 'favorite', true );   
    array_push( $meta_user_favorite, $post_id );    
    update_user_meta( $user_id, 'favorite', $meta_user_favorite );
}