【问题标题】:How to compare the value from level 3 array with some value contained in a variable and manipulate the multidimensional array accordingly?如何将 3 级数组的值与变量中包含的某个值进行比较并相应地操作多维数组?
【发布时间】:2016-04-06 14:32:30
【问题描述】:

我有一个名为 $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/
                )
        )  
)

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

【问题讨论】:

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


    【解决方案1】:

    试试这个,肯定会成功的。

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

    【讨论】:

      【解决方案2】:

      试试这个:

      <?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]);
        }
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多