PHP массив внутри массива

#php #arrays #foreach

#php #массивы #предначертание #foreach

Вопрос:

У меня есть этот массив, и я выполнил print_r($resultArray) и получил эти результаты;

 Array ( [0] => Array ( [invoiceid] => 992 [client] => www [invoicedeliverymethod] => email [date] => 2011-11-04 [enddate] => 2011-10-31 23:59:59 [total] => 103.00 [remainingbalance] => 103.00 [ispaid] => No [isagentpaid] => No [datedistributed] => 2011-11-04 [invoicedcontact] => 1 ) [1] => Array ( [invoiceid] => 991 [client] => www [invoicedeliverymethod] => email [date] => 2011-11-04 [enddate] => 2011-09-30 23:59:59 [total] => 103.00 [remainingbalance] => 103.00 [ispaid] => No [isagentpaid] => No [datedistributed] => Not distributed [invoicedcontact] => 1 ) [2] => Array ( [invoiceid] => 988 [client] => Sylvester Services [invoicedeliverymethod] => email [date] => 2011-11-04 [enddate] => 2011-10-31 23:59:59 [total] => 16687.83 [remainingbalance] => -16487.83 [ispaid] => No [isagentpaid] => No [datedistributed] => Not distributed [invoicedcontact] => 1 ) [3] => Array ( [invoiceid] => 987 [client] => Colony Holland Lumber [invoicedeliverymethod] => email [date] => 2011-11-04 [enddate] => 2011-10-31 23:59:59 [total] => 8345.39 [remainingbalance] => -8245.39 [ispaid] => No [isagentpaid] => No [datedistributed] => Not distributed [invoicedcontact] => 1 ) )
  

Что я пытаюсь сделать, так это написать цикл foreach, который получает каждый из [invoiceid]

Это то, что у меня есть до сих пор

     foreach($resultArrayy as $key){
    foreach($key as $value){
        echo $value . "<br/>";
    }
}
  

Но это возвращает это;

 992
www
email
2011-11-04
2011-10-31 23:59:59
103.00
103.00
No
No
2011-11-04
1
  

для каждого из них (но разные данные)

Ответ №1:

 foreach($resultArray as $value){
    echo $value['invoiceid'] . "<br/>";
}
  

Ответ №2:

 foreach($resultarray as $result)
    echo $result["invoiceid"];
  

Комментарии:

1. Действительно 3 голоса за? Никто не понял, что это работает не так, как ожидалось? Это может вернуть invoiceid только последнюю запись (при использовании $resultArray )

2. Технически это сработало для приведенного примера… просто не применимо в широком смысле. Точка с запятой удалена. Сегодня я король редактирования.

3. Извините, я устал после долгого дня, должно быть, я был неосторожен. Спасибо @Derelased за исправление.

Ответ №3:

Вам нужно сделать

 foreach($resultArrayy as $result){
    if array_key_exists('invoceid', $result)
        echo $result['invoiceid'] . "<br/>";
}
  

Комментарии:

1. Ему не нужен другой цикл foreach, и если, он может напрямую получить invoiceid внутри первого foreach. Проверьте мой ответ.

2. Но yasar, O (N) — это ооочень бооооорррриииииннг.

3. @Dereleased Я не понял, что вы имели в виду под (O) N , я не являюсь носителем языка.

4. Я просто пытался привести пример другого варианта для цикла foreach