如何将3级数组中的值与变量中包含的某些值进行比较并相应地操作多维数组?

时间:2016-01-02 13:28:23

标签: php arrays multidimensional-array associative-array key-value

我有一个名为$ event_details的数组,如下所示:

//Output of print_r($event_details);

Array
(
    [Today] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 
                    [is_liked] => 
                    [group_name] => 
                    [event_id] => 439
                    [item_id] => 0
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/439/winter-sprinkles-1/
                )
            [1] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => 
                    [event_id] => 503
                    [item_id] => 0
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event                            
                        )
                    [url] => http://jumbo.com/event/503/appcampusevent1/
                )
            [2] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => Boxing Day
                    [event_id] => 504
                    [item_id] => 367
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event                            
                        )
                    [url] => http://jumbo.com/event/504/appcampusevent2/
                )
        )
    [Tomorrow] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 505
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/505/sampleeve1/
                )
            [1] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 506
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/506/sampleevent2/
                )
        )
    [Thursday, January 7] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => Boxing Day
                    [event_id] => 501
                    [item_id] => 367
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event                            
                        )
                    [url] => http://jumbo.com/event/501/demoevent5/
                )
        )
    [Saturday, January 9] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 
                    [is_liked] => 
                    [group_name] => Campusknot test
                    [event_id] => 431
                    [item_id] => 335
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event                            
                        )
                    [url] => http://jumbo.com/event/431/test-myevent/
                )
        )
    [Wednesday, January 13] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => Boxing Day
                    [event_id] => 500
                    [item_id] => 367
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/500/demoevent5/
                )
        )
    [Friday, January 15] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 498
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/498/demoevent2/
                )
        )
    [Wednesday, January 20] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => 
                    [event_id] => 499
                    [item_id] => 0
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/499/demoevent3/
                )
        )
    [Saturday, January 30] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 
                    [is_liked] => 
                    [group_name] => Campusknot Test Group
                    [event_id] => 473
                    [item_id] => 329
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/473/test3/
                )
        )
    [Tuesday, February 16] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 
                    [is_liked] => 
                    [group_name] => Campusknot Test Group
                    [event_id] => 471
                    [item_id] => 329
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/471/campusknot-b-039-day/
                )
        )
)

现在我变量$group_id = 332;我希望将$group_id与密钥['item_id']中存在的值进行比较,该值存在于内部3级数组的每个键中。

我想从发现不匹配的数组$event_details中删除所有这些数组元素。

最后,在完成所有数组操作后,我希望得到的数组$event_details如下:

Array
(
    [Tomorrow] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 505
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/505/sampleeve1/
                )
            [1] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 506
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/506/sampleevent2/
                )
        )   
    [Friday, January 15] => Array
        (
            [0] => Array
                (
                    [rsvp_id] => 1
                    [is_liked] => 
                    [group_name] => New Athletic Group
                    [event_id] => 498
                    [item_id] => 332
                    [aFeed] => Array
                        (
                            [feed_display] => mini
                            [comment_type_id] => event
                        )
                    [url] => http://jumbo.com/event/498/demoevent2/
                )
        )  
)

有人可以以最佳和有效的方式让事情发生吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

<?php
foreach($event_details as $day => $detail){
  foreach($detail as $event_key => $event){
    if($event['item_id'] != $group_id) unset($event_details[$day][$event_key]);
  }
}
?>

答案 1 :(得分:-1)

试试这个,它肯定会起作用。

    foreach($event_details as $day => $detail){
      foreach($detail as $event_key => $event){
        if($event['item_id'] != $group_id) unset($event_details[$day]);
      }
    }