首页 > 解决方案 > 如何获得多维数组搜索

问题描述

我的数组是:如何按“航空公司名称”过滤

Array
(
[0] => stdClass Object
    (
        [arrival] => stdClass Object
            (
                [flightName] => BG
                [flightNo] => 95
                [departureDate] => Jul 07, 18
                [departureTime] => 19:20
                [arrivalDate] => Jul 07, 18
                [arrivalTime] => 19:45
                [departFrom] => DAC
                [arriveTo] => CCU
                [flightPrice] => 11935
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/BG.png
                [airlinesName] => Biman Airlines
                [departureCity] => Dhaka
                [arrivalCity] => Kolkata
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 14JUN18
                                [2] =>  - SEE ADV PURCHASE
                            )

                    )

                [duration] => 
                [departAirport] => Dhaka / Hazrat Shahjalal International Airport
                [departTerminal] => 2
                [arriveAirport] => Netaji Subhash Chandra Bose International Airport
                [arriveTerminal] => 3
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 738
                [hasReturn] => 1
            )

        [return] => stdClass Object
            (
                [flightName] => BG
                [flightNo] => 96
                [departureDate] => Jul 18, 18
                [departureTime] => 20:35
                [arrivalDate] => Jul 18, 18
                [arrivalTime] => 22:05
                [departFrom] => CCU
                [arriveTo] => DAC
                [flightPrice] => 11935
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/BG.png
                [airlinesName] => Biman Airlines
                [departureCity] => Kolkata
                [arrivalCity] => Dhaka
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 14JUN18
                                [2] =>  - SEE ADV PURCHASE
                            )

                    )

                [duration] => 
                [departAirport] => Netaji Subhash Chandra Bose International Airport
                [departTerminal] => 3
                [arriveAirport] => Dhaka / Hazrat Shahjalal International Airport
                [arriveTerminal] => 1
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 738
                [hasReturn] => 1
            )

    )

[1] => stdClass Object
    (
        [arrival] => stdClass Object
            (
                [flightName] => AI
                [flightNo] => 229
                [departureDate] => Jul 07, 18
                [departureTime] => 21:35
                [arrivalDate] => Jul 07, 18
                [arrivalTime] => 22:05
                [departFrom] => DAC
                [arriveTo] => CCU
                [flightPrice] => 15251
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/AI.png
                [airlinesName] => Nacil Air India
                [departureCity] => Dhaka
                [arrivalCity] => Kolkata
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => TICKETS ARE NON-REFUNDABLE
                        [1] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 30JUN18
                                [2] =>  - SEE SALES RSTNS
                            )

                    )

                [duration] => 
                [departAirport] => Dhaka / Hazrat Shahjalal International Airport
                [departTerminal] => 
                [arriveAirport] => Netaji Subhash Chandra Bose International Airport
                [arriveTerminal] => 2
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 319
                [hasReturn] => 1
            )

        [return] => stdClass Object
            (
                [flightName] => AI
                [flightNo] => 230
                [departureDate] => Jul 18, 18
                [departureTime] => 19:05
                [arrivalDate] => Jul 18, 18
                [arrivalTime] => 20:35
                [departFrom] => CCU
                [arriveTo] => DAC
                [flightPrice] => 15251
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/AI.png
                [airlinesName] => Nacil Air India
                [departureCity] => Kolkata
                [arrivalCity] => Dhaka
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => TICKETS ARE NON-REFUNDABLE
                        [1] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 30JUN18
                                [2] =>  - SEE SALES RSTNS
                            )

                    )

                [duration] => 
                [departAirport] => Netaji Subhash Chandra Bose International Airport
                [departTerminal] => 2
                [arriveAirport] => Dhaka / Hazrat Shahjalal International Airport
                [arriveTerminal] => 
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 319
                [hasReturn] => 1
            )

    )

[2] => stdClass Object
    (
        [arrival] => stdClass Object
            (
                [flightName] => 9W
                [flightNo] => 273
                [departureDate] => Jul 07, 18
                [departureTime] => 17:20
                [arrivalDate] => Jul 07, 18
                [arrivalTime] => 17:50
                [departFrom] => DAC
                [arriveTo] => CCU
                [flightPrice] => 31666
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/9W.png
                [airlinesName] => Jet Airways
                [departureCity] => Dhaka
                [arrivalCity] => Kolkata
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => PENALTY APPLIES
                        [1] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 07JUL18
                                [2] =>  - DATE OF ORIGIN
                            )

                    )

                [duration] => 
                [departAirport] => Dhaka / Hazrat Shahjalal International Airport
                [departTerminal] => 
                [arriveAirport] => Netaji Subhash Chandra Bose International Airport
                [arriveTerminal] => 
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 739
                [hasReturn] => 1
            )

        [return] => stdClass Object
            (
                [flightName] => BG
                [flightNo] => 96
                [departureDate] => Jul 18, 18
                [departureTime] => 20:35
                [arrivalDate] => Jul 18, 18
                [arrivalTime] => 22:05
                [departFrom] => CCU
                [arriveTo] => DAC
                [flightPrice] => 31666
                [flightPriceCurrency] => BDT
                [bookingClass] => K
                [fareBasis] => KAP1BD3M
                [airlinesIcon] => http://pics.avs.io/200/200/BG.png
                [airlinesName] => Biman Airlines
                [departureCity] => Kolkata
                [arrivalCity] => Dhaka
                [stopType] => nostop
                [seatLeft] => 9
                [refundMessage] => 
                [fareRules] => Array
                    (
                        [0] => PENALTY APPLIES
                        [1] => Array
                            (
                                [0] => LAST TKT DTE
                                [1] => 07JUL18
                                [2] =>  - DATE OF ORIGIN
                            )

                    )

                [duration] => 
                [departAirport] => Netaji Subhash Chandra Bose International Airport
                [departTerminal] => 3
                [arriveAirport] => Dhaka / Hazrat Shahjalal International Airport
                [arriveTerminal] => 1
                [maxHandbag] => 
                [maxLuggage] => 
                [aircraft] => 738
                [hasReturn] => 1
            )

    )

)

标签: php

解决方案


你可以试试这个,.,

 $a = [
         [
            'arrival' => [
                'airlinesName' => 'tes1',
                'departureCity' => 'ads'
            ],
             'return' => [
                'airlinesName' => 'tes1',
                'departureCity' => 'ads'
            ]
         ],
        [
            'arrival' => [
                'airlinesName' => 'tes2',
                'departureCity' => 'ads'
            ],
             'return' => [
                'airlinesName' => 'tes2',
                'departureCity' => 'ads'
            ]
         ]
     ];

    $airlinesName = 'tes1';

    $a = array_filter($a, function($x) use ($airlinesName){ return $x['arrival']['airlinesName'] == $airlinesName;});
    print_r($a);

推荐阅读