Нужна одна функция отображения для отображения многомерного массива в PHP

0

QS1. Ниже приводятся результаты из одного массива (полученного из WEBSERVICE CALL с использованием SOAP). У меня есть путаница в доступе к элементам из массива. Как видно из результатов, иногда результаты появляются как ARRAY (во втором результате), где иногда результаты выводятся без индекса массива (первые результаты). SO как я могу использовать лучший метод для отображения элементов, таких как array ["AirportCode"] для получения точных результатов и отображения вывода TO пользователю.

*********************
RESULTS SET-1
********************

  Array
    (
    [SegmentIndicator] => 1
    [Airline] => Array
    (
    [AirlineCode] => SG
    [AirlineName] => SpiceJet
    [AirLineRemarks] => SG Star Coupon
    )

    [FlightNumber] => 894
    [FareClass] => K
    [Origin] => Array
    (
    [AirportCode] => GAU
    [AirportName] => Borjhar
    [Terminal] =>
    [CityCode] => GAU
    [CityName] => Guwahati
    [CountryCode] => IN
    [CountryName] => India
    )

    [Destination] => Array
    (
    [AirportCode] => DEL
    [AirportName] => Indira Gandhi Airport
    [Terminal] => 1C
    [CityCode] => DEL
    [CityName] => Delhi
    [CountryCode] => IN
    [CountryName] => India
    )

    [DepTIme] => 2014-12-26T11:05:00
    [ArrTime] => 2014-12-26T14:00:00
    [ETicketEligible] => 1
    [Duration] => 02:55
    [Stop] => 0
    [Craft] => 738
    [Status] => Confirmed
    [OperatingCarrier] => SG
    )
*****************************************
RESULTS SET-2
****************************************
Array
(
[0] => Array
(
[SegmentIndicator] => 1
[Airline] => Array
(
[AirlineCode] => AI
[AirlineName] => Air India
[AirLineRemarks] => This JetAirways series are operated by JetLite
)

[FlightNumber] => 401
[FareClass] => Y
[Origin] => Array
(
[AirportCode] => DEL
[AirportName] => Indira Gandhi Airport
[Terminal] => 3
[CityCode] => DEL
[CityName] => Delhi
[CountryCode] => IN
[CountryName] => India
)

[Destination] => Array
(
[AirportCode] => CCU
[AirportName] => Calcutta
[Terminal] => 2
[CityCode] => CCU
[CityName] => Kolkata
[CountryCode] => IN
[CountryName] => India
)

[DepTIme] => 2014-12-31T07:00:00
[ArrTime] => 2014-12-31T09:05:00
[ETicketEligible] => 1
[Duration] => 00:00
[Stop] => 0
[Craft] => 321
[Status] => Confirmed
[OperatingCarrier] => AI
)

[1] => Array
(
[SegmentIndicator] => 1
[Airline] => Array
(
[AirlineCode] => 9W
[AirlineName] => Jet Airways
[AirLineRemarks] => This JetAirways series are operated by JetLite
)

[FlightNumber] => 2363
[FareClass] => H
[Origin] => Array
(
[AirportCode] => CCU
[AirportName] => Calcutta
[Terminal] =>
[CityCode] => CCU
[CityName] => Kolkata
[CountryCode] => IN
[CountryName] => India
)

[Destination] => Array
(
[AirportCode] => GAU
[AirportName] => Borjhar
[Terminal] =>
[CityCode] => GAU
[CityName] => Guwahati
[CountryCode] => IN
[CountryName] => India
)

[DepTIme] => 2014-12-31T10:45:00
[ArrTime] => 2014-12-31T11:55:00
[ETicketEligible] => 1
[Duration] => 00:00
[Stop] => 0
[Craft] => 738
[Status] => Confirmed
[OperatingCarrier] => 9W
)
  • 0
    Случай 1: распечатать myarray ['AirportCode']; Случай 2: myarray [0] ['AirportCode']; Вы можете сделать для каждого, структура одинакова, один раз с 1 элементом (Case1), один раз с большим количеством элементов (case2)
  • 0
    Спасибо за ваш быстрый ответ. если myarray содержит элементы с индексами от [0] до [n]. тогда что делать для печати элементов? И как динамически определить case1 и case2, поскольку я использую приведенные выше результаты в цикле.
Показать ещё 3 комментария
Теги:
soap

1 ответ

0

Я напишу цикл, который будет работать в обоих случаях. Я покажу только один var → AirportCode <-

во-первых, у меня будет var, называемый myArray с массивом.

$myArray = .... // Do what you need to populate it.

А теперь сделай себе кусочек.

for ($i = 0; $i < count($myArray); $i++){
 if(isset($myArray[$i]['AirportCode'])){
  print  $myArray[$i]['AirportCode'];
}
}

Однако вам нужно проверить этот код.

  • 0
    Мне нужно устранить еще одну путаницу, предположим, что $ myArray [$ i] ['AirportCode'] ['index1'] ['index2'] ...! Можно ли проверить, используя только isset ($ myArray [$ i]) вместо всего индекса ключа, так как у меня много индекса ключа после AirportCode
  • 0
    По-разному. Поле AirportCode (Пример) всегда установлено?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню