【问题标题】:Wordpress: array_push creates array inside the previous arrayWordpress:array_push 在前一个数组中创建数组
【发布时间】:2019-03-05 16:22:24
【问题描述】:

我想在 WordPress array() 上创建 array() 上的数据,其中包含用户最喜欢的帖子,他可以将这些帖子添加到此元 favorite

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

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)
}

【问题讨论】:

  • $meta_user_favorite = array_merge($meta_user_favorite, $post_id); ?

标签: php wordpress array-push


【解决方案1】:

查看get_user_meta() 的文档。您省略的第三个参数是$single,默认为false,并确定是返回数组还是返回值。如果您将 true 传递给它(老实说,我在处理用户和发布元数据时在 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 );
}

【讨论】:

  • 谢谢!我有同样的问题,现在已经解决了。这应该被标记为接受的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
相关资源
最近更新 更多