从多维数组中删除多个值
Posted
技术标签:
【中文标题】从多维数组中删除多个值【英文标题】:Delete multiple values from multidimensional array 【发布时间】:2014-11-17 14:54:02 【问题描述】:我有一个来自 WordPress 的 get_posts()
函数的数组。
$posts:
array(15)
[0]=>
object(WP_Post)#285 (24)
["ID"]=>
int(253)
["post_author"]=>
string(1) "1"
["post_date"]=>
string(19) "2014-04-17 18:36:27"
["post_date_gmt"]=>
string(19) "2014-04-17 18:36:27"
["post_content"]=>
string(8) "gsdljdkf"
["post_title"]=>
string(10) "Shortcoded"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(6) "closed"
["ping_status"]=>
string(4) "open"
["post_password"]=>
string(0) ""
["post_name"]=>
string(12) "shortcoded-2"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-04-17 18:36:27"
["post_modified_gmt"]=>
string(19) "2014-04-17 18:36:27"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(51) "http://XXX.0.0.1:4001/wordpress/board/shortcoded-2/"
["menu_order"]=>
int(0)
["post_type"]=>
string(10) "board_post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
[1]=>
object(WP_Post)#284 (24)
(so on and so forth for all posts)
我有一个数组,其中包含要排除的帖子 ID。
$ids_of_posts_to_exclude:
array(3)
[0]=> string(253)
[1]=> string(456)
[2]=> string(789)
如何从$posts
中删除id在$ids_of_posts_to_exclude
中的帖子?
【问题讨论】:
看看array_dif
- php.net/manual/en/function.array-diff.php
【参考方案1】:
您可以使用 foreach 循环和 in_array()
函数来执行此操作。像这样:
foreach($posts as $key => $post)
// if post id is inside the ids of posts to be excluded
if(in_array($post->ID, $ids_of_posts_to_exclude))
unset($posts[$key]); // remove that key
【讨论】:
@simplethings 很高兴它有帮助【参考方案2】:使用array_filter
的另一种方式
$filtered_posts = array_filter($posts,function($post) use ($ids_of_posts_to_exclude)
return in_array($post->ID,$ids_of_posts_to_exclude);
);
【讨论】:
以上是关于从多维数组中删除多个值的主要内容,如果未能解决你的问题,请参考以下文章