workRave
@workRave

Как обратиться к элементу массива? Почему не получается?

Добрый день!
Я запрашиваю с IP-телефонии zadarma статистику:
$answerObject = json_decode($answer);
if ($answerObject->status == 'success') {
    print_r($answerObject->stats);
} else {
    echo $answerObject->message;
}

По итогу в исходном коде html массив(?): https://gist.github.com/anonymous/c7428d6f40475bbf...

1) Как мне перебрать такой массив? (пробовал несколько вариантов, не получаеться)
2) Как посмотреть значение [pbx_call_id], скажем 14 элемента например?

P.S>> Задача,, пройтись по массиву, если [pbx_call_id], совпадает с нужным мне, то посмотреть [sip] и [disposition], и в зависимости от значений выполнить определенное действие.
3 день мучаюсь... помогите :(
  • Вопрос задан
  • 445 просмотров
Решения вопроса 1
DevMan
@DevMan
Как мне перебрать такой массив?
foreach($answerObject->stats as $item) {
    echo $item->pbx_call_id, PHP_EOL;
}
у вас массив объектов. поэтому с массивом работаете как с массивом, а с объектами как с объектом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Как посмотреть значение [pbx_call_id], скажем 14 элемента например?

$arr = $answerObject->stats;
echo $arr[14][pbx_call_id];


Задача,, пройтись по массиву, если [pbx_call_id], совпадает с нужным мне, то посмотреть [sip] и [disposition], и в зависимости от значений выполнить определенное действие.

$nuznii_pbx_call_id = 123;
$arr = $answerObject->stats;
$sip = false;
foreach($arr as $one){
if($one['pbx_call_id'] == $nuznii_pbx_call_id){
$sip =$one['sip'];
}
}
if($sip){
echo $sip;
}else{
echo 'не найдено совпадений';
}
Ответ написан
@vshvydky
$answerObject у вас не объект а массив объектов, потому answerObject[1]->status

php.net/manual/ru/control-structures.foreach.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы