在尝试回显时给出错误的数组

时间:2017-08-17 12:34:50

标签: php arrays

我有一个庞大的阵列,我希望在其中显示它的特定部分。

我有一部分,在这里:

["dagskema"]=>
  array(5) {
    ["Mandag (14/8)"]=>
    array(2) {
      ["noter"]=>
      array(1) {
        [0]=>
        string(30) "16:10-17:35  KOR i AVLSGÃ…RDEN"
      }
      ["fag"]=>
      array(8) {
        [0]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d re ​JH ​04"
          ["note"]=>
          string(365) "14/8-2017 09:05 til 09:55 Hold: 2d re Lærer: Jens Christian von Holck (JH) Lokale: 04  Lektier: - Medbring en oplevelse fra sommerferien, hvor du på en eller anden måde har været i forbindelse/ vidne til/ tænkt over noget religiøst. Uddybning: Du skal kunne formidle din oplevelse via få stikord eller en enkelt kort sætning (skal kunne bruges anal [...]..."
        }
        [1]=>
        array(2) {
          ["tekst"]=>
          string(26) "2d SP ​BL ​01
  intro"
          ["note"]=>
          string(165) "intro 14/8-2017 10:05 til 10:55 Hold: 2d SP Lærer: Bjarke Ledskov (BL) Lokale: 01  Note: vi skal repetere materialet fra sidste år og snakke om hvad vi skal i år."
        }
        [2]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d SP ​BL ​01"
          ["note"]=>
          string(76) "14/8-2017 11:00 til 11:50 Hold: 2d SP Lærer: Bjarke Ledskov (BL) Lokale: 01"
        }
        [3]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d Sa ​FS ​03"
          ["note"]=>
          string(283) "14/8-2017 12:30 til 13:20 Hold: 2d Sa Lærer: Freja Schloss (FS) Lokale: 03  Lektier: - Terrorisme på tværs (Hansen & Jensen, side 26-32).pdf [...]  Øvrigt indhold: - Rasmus Pöckel oprørsmodellen.docx [...]  Note: Hvad er terrorisme? Hvordan kan vi præcist definere terrorisme?"
        }
        [4]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d Sa ​FS ​03"
          ["note"]=>
          string(359) "14/8-2017 13:25 til 14:15 Hold: 2d Sa Lærer: Freja Schloss (FS) Lokale: 03  Øvrigt indhold: - Why Russia’s reaction to the St. Petersburg bombing is all about strengthening Putin's power [...]     (Eksempel på misbrug af ordet "terrorisme". Artikel fra Newsweek, 10. april 2017.)  Note: Hvordan kan begreberne terror/terrorisme/terrorister misbruges?"
        }
        [5]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d Ma ​Ma ​23"
          ["note"]=>
          string(108) "Aflyst! 14/8-2017 14:20 til 15:10 Hold: 2d Ma Lærer: Malik Lindholdt (Ma) Lokale: 23  Note: Omsorgsdag (Ma)"
        }
        [6]=>
        array(2) {
          ["tekst"]=>
          string(17) "2d Ma ​Ma ​23"
          ["note"]=>
          string(108) "Aflyst! 14/8-2017 15:15 til 16:05 Hold: 2d Ma Lærer: Malik Lindholdt (Ma) Lokale: 23  Note: Omsorgsdag (Ma)"
        }
        [7]=>
        array(2) {
          ["tekst"]=>
          string(108) "KOR i AVLSGÃ…RDEN 
  Alle 1. G. elever  Alle 2. G. elever  Alle 3. G. elever  KOR 2017-18 ​LL ​AG1 (mu)"
          ["note"]=>
          string(187) "Ændret! KOR i AVLSGÅRDEN 14/8-2017 16:10 til 17:35 Hold: Alle 1. G. elever, Alle 2. G. elever, Alle 3. G. elever, KOR 2017-18 Lærer: Svend Jørgen Lyngberg-Larsen (LL) Lokale: AG1 (mu)"
        }
      }
    }

我特别希望定位“fag”数组。

我尝试了以下操作,但它返回错误:

        <?php
    include("lectio/lectio.php");
        $lectio = new lectio();
        $skemamag = $lectio->get_skema_til_elev(94, 16305782848);
var_dump($skemamag);
?>        
 <div class="skema-lektioner-wrapper">
    <?php foreach ($skemamag['dagskema']['Mandag (14/8)']['fag'][8] as $key => $val) {
        echo '<p class="lektioner lektioner-'.$val.'">';
        echo $val;
        echo '</p>';
    }?>
    </div>

错误如下所示:

Warning: Invalid argument supplied for foreach() in /var/www/square-brain.com/itk/index.php on line 62

我在github上使用api LectioAPI,链接here

我特意使用this文件

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要仔细查看阵列结构。 PHP在数组上很重要,所以你需要熟悉它们

<?php 
foreach ($skemamag['dagskema']['Mandag (14/8)']['fag'] as $fag) {
    // $fag is also an array, not sure if you want both of its members
    // or just one
    echo '<p>'
    echo $fag['tekst'];
    echo ' ';
    echo $fag['note'];
    echo '</p>';
}
?>

为了避免按名称使用'Mandag (14/8)'数组,因为它可能会随着时间而改变,你可以做到

<?php 
foreach ($skemamag['dagskema'] as $d => $dag) {
    echo echo "<p>$d</p>";  // echo that dag

    foreach ( $dag['fag'] as $fag) {

    echo '<p>'
        echo $fag['tekst'];
        echo ' ';
        echo $fag['note'];
        echo '</p>';
    }
}
?>