2017-01-18 4 views
-2

이 다차원 배열의 id, friendlyname, url 및 status의 값을 얻는 방법, 특정 값에 대해 배열을 반복하는 방법 또한 ID를 기반으로 개별 모니터의 유형 및 날짜 시간을 얻는 방법PHP에서 다차원 배열의 특정 값을 얻는 방법은 무엇입니까?

Array 
(
    [stat] => ok 
    [offset] => 0 
    [limit] => 50 
    [total] => 4 
    [monitors] => Array 
     (
      [monitor] => Array 
       (
        [0] => Array 
         (
          [id] => 778539790 
          [friendlyname] => Centaur 
          [url] => http://centaurdatacorp.in 
          [type] => 1 
          [subtype] => 
          [keywordtype] => 
          [keywordvalue] => 
          [httpusername] => 
          [httppassword] => 
          [port] => 
          [interval] => 300 
          [status] => 2 
          [alltimeuptimeratio] => 100 
          [log] => Array 
           (
            [0] => Array 
             (
              [type] => 2 
              [datetime] => 01/10/2017 10:16:51 
             ) 

            [1] => Array 
             (
              [type] => 98 
              [datetime] => 01/10/2017 10:16:39 
             ) 

           ) 

         ) 

        [1] => Array 
         (
          [id] => 778539794 
          [friendlyname] => Centaur dotcom 
          [url] => http://centaurdatacorp.com 
          [type] => 1 
          [subtype] => 
          [keywordtype] => 
          [keywordvalue] => 
          [httpusername] => 
          [httppassword] => 
          [port] => 
          [interval] => 300 
          [status] => 2 
          [alltimeuptimeratio] => 100 
          [log] => Array 
           (
            [0] => Array 
             (
              [type] => 2 
              [datetime] => 01/10/2017 10:17:22 
             ) 

            [1] => Array 
             (
              [type] => 98 
              [datetime] => 01/10/2017 10:17:10 
             ) 

           ) 

         ) 


       ) 

     ) 

) 
+0

참조 : http://stackoverflow.com/q/30680938/3933332 – Rizier123

답변

0

왜 그 배열 구조를 사용하는지 잘 모르겠습니다. 당신이 스스로 한 경우 , 나는 당신이 "모니터"배열을 제거하고, 어쨌든

"모니터"로 그것의 내용을 이동 제안, 배열은 $ 모니터

foreach($monitors['monitors'] as $k => $v) { 
    foreach($v['monitor'] as $monitor) { 

     echo "monitor id: " . $monitor['id'] . "<br>\n"; 
     echo "friendly name: " . $monitor['friendlyname'] . "<br>\n"; 
    } 
} 

라는 말을 얻을 수 있습니다 모니터 ID에 대한 날짜 시간 :

function getLogById($monitors, $id) { 
    foreach($monitors['monitors'] as $k => $v) { 
     foreach($v['monitor'] as $monitor) { 
      if($monitor['id'] == $id) { 
       //Depending on what you exactly want returned, do something here 
       return $monitor['log']; 
      } 
     } 
    } 

    return null; 
} 

//and you can use this like so: 
getLogById($monitors, 778539794); 
+0

배열이를 사용하여 시도 uptimerobot.com 의 API에서 반환되지만, 점점 오류 정의되지 않은 인덱스로 : 모니 토 16 행의 C : \ xampp \ htdocs \ uprobot \ test.php 경고 : 16 행의 C : \ xampp \ htdocs \ uprobot \ test.php의 foreach()에 잘못된 인수가 제공되었습니다. –

+0

키 값을 사용하지 않고 작업 - foreach ($ monitors [ 'monitors']를 $ monitor로 사용) { \t foreach ($ monitor as $ getdata) { \t \t echo "Monitor id :". $ getdata [ 'id']. "
\ n"; –

관련 문제