数组对象去除重复的值
程序员文章站
2024-02-20 09:09:40
...
Array( [4968] => WP_Post Object ( [ID] => 4968 [post_author] => 1 [post_date] => 2013-11-30 14:32:54 [post_date_gmt] => 2013-11-30 06:32:54 [post_content] => [post_title] => taibei [post_excerpt] => 来到台北的日子 [post_status] => inherit [comment_status] => open [ping_status] => open [post_password] => [post_name] => taibei [to_ping] => [pinged] => [post_modified] => 2013-11-30 14:32:54 [post_modified_gmt] => 2013-11-30 06:32:54 [post_content_filtered] => [post_parent] => 4058 [guid] => http://tanteng-wordpress.stor.sinaapp.com/uploads/2013/01/taibei.jpg [menu_order] => 0 [post_type] => attachment [post_mime_type] => image/jpeg [comment_count] => 0 [filter] => raw ) [4951] => WP_Post Object ( [ID] => 4951 [post_author] => 1 [post_date] => 2013-11-29 14:38:33 [post_date_gmt] => 2013-11-29 06:38:33 [post_content] => [post_title] => taipei [post_excerpt] => 台北路的生活 [post_status] => inherit [comment_status] => open [ping_status] => open [post_password] => [post_name] => taipei-3 [to_ping] => [pinged] => [post_modified] => 2013-11-29 14:38:33 [post_modified_gmt] => 2013-11-29 06:38:33 [post_content_filtered] => [post_parent] => 4058 [guid] => http://tanteng-wordpress.stor.sinaapp.com/uploads/2013/01/taipei.jpgpsid1 [menu_order] => 0 [post_type] => attachment [post_mime_type] => image/jpeg [comment_count] => 0 [filter] => raw ) [4940] => WP_Post Object ( [ID] => 4940 [post_author] => 1 [post_date] => 2013-11-28 12:53:08 [post_date_gmt] => 2013-11-28 04:53:08 [post_content] => [post_title] => 201304181305293855 [post_excerpt] => [post_status] => inherit [comment_status] => open [ping_status] => open [post_password] => [post_name] => 201304181305293855 [to_ping] => [pinged] => [post_modified] => 2013-11-28 12:53:08 [post_modified_gmt] => 2013-11-28 04:53:08 [post_content_filtered] => [post_parent] => 4509 [guid] => http://tanteng-wordpress.stor.sinaapp.com/uploads/2013/09/201304181305293855.pngpsid1 [menu_order] => 0 [post_type] => attachment [post_mime_type] => image/png [comment_count] => 0 [filter] => raw ) [4937] => WP_Post Object ( [ID] => 4937 [post_author] => 1 [post_date] => 2013-11-28 09:55:07 [post_date_gmt] => 2013-11-28 01:55:07 [post_content] => [post_title] => wordpress-custom-query-string [post_excerpt] => [post_status] => inherit [comment_status] => open [ping_status] => open [post_password] => [post_name] => wordpress-custom-query-string [to_ping] => [pinged] => [post_modified] => 2013-11-28 09:55:07 [post_modified_gmt] => 2013-11-28 01:55:07 [post_content_filtered] => [post_parent] => 4936 [guid] => http://tanteng-wordpress.stor.sinaapp.com/uploads/2013/11/wordpress-custom-query-string.jpg [menu_order] => 0 [post_type] => attachment [post_mime_type] => image/jpeg [comment_count] => 0 [filter] => raw ) [4931] => WP_Post Object ( [ID] => 4931 [post_author] => 1 [post_date] => 2013-11-27 10:41:47 [post_date_gmt] => 2013-11-27 02:41:47 [post_content] => [post_title] => yming [post_excerpt] => [post_status] => inherit [comment_status] => open [ping_status] => open [post_password] => [post_name] => psb-1 [to_ping] => [pinged] => [post_modified] => 2013-11-27 10:41:47 [post_modified_gmt] => 2013-11-27 02:41:47 [post_content_filtered] => [post_parent] => 0 [guid] => http://tanteng-wordpress.stor.sinaapp.com/uploads/2013/11/psb-1.jpg [menu_order] => 0 [post_type] => attachment [post_mime_type] => image/jpeg [comment_count] => 0 [filter] => raw ))
我得到一个这样的对象数组,每个数组里面的对象的键要保留,但是post_parent的值相同的,只保留第一个,怎么写函数???
回复讨论(解决方案)
$st = array();foreach($ar as $i=>$o) { if(in_array($o->post_parent, $st)) unset($ar[$i]); else $st[] = $o->post_parent;}
$st = array();foreach($ar as $i=>$o) { if(in_array($o->post_parent, $st)) unset($ar[$i]); else $st[] = $o->post_parent;}
唠叨!哈哈,才知道哦.
大神,我不明白你的$ar是哪里来的。麻烦解释下被。
而且这个$o->post_partent是不是这个多维数组里的所有post_parent的值啊?
还有您这种写法,我很是迷糊。。您是不是又简写了!
$st = array();foreach($ar as $i=>$o) { if(in_array($o->post_parent, $st)) unset($ar[$i]); else $st[] = $o->post_parent;}
$images =& get_children( 'post_type=attachment&post_mime_type=image&numberposts=5&post_parent=true' ); foreach ($images as $k=>$v){ $temp[$k]=$v->post_parent; } $temp=array_unique($temp); $temp=array_filter($temp); foreach ($temp as $k=>$v){ if(!is_imagetype($v)){ unset($temp[$k]); } }
我是这样写的,跟你的比真是弱爆了!!为了实现首页幻灯的效果,你看看,已经弄好了。
http://www.tantengvip.com/
$st = array();foreach($ar as $i=>$o) { if(in_array($o->post_parent, $st)) unset($ar[$i]); else $st[] = $o->post_parent;}
唠叨!哈哈,才知道哦.
大神,我不明白你的$ar是哪里来的。麻烦解释下被。
而且这个$o->post_partent是不是这个多维数组里的所有post_parent的值啊?
还有您这种写法,我很是迷糊。。您是不是又简写了!
$ar就是我输出的那一段数组对象
楼主的方法显然是想多了,显得太复杂
$arr = array();$comp = array_keys(array_unique(array_column($arr,'post_parent','id')));foreach ($arr as $k=>$v){ if(! in_array($v['id'], $comp)) unset($arr[$k]);}print_r($arr);