简体   繁体   English

将数组插入HTML元素

[英]Insert arrays into HTML element

I'm fairly new to PHP, but i have ended up messing around with arrays. 我对PHP还是相当陌生,但最终还是弄乱了数组。

I have this structure, and alot of them: 我有这个结构,其中很多:

  ["ugedage"]=>
array(5) {
    [0]=>
    string(13) "Mandag (14/8)"
    [1]=>
    string(14) "Tirsdag (15/8)"
    [2]=>
    string(13) "Onsdag (16/8)"
    [3]=>
    string(14) "Torsdag (17/8)"
    [4]=>
    string(13) "Fredag (18/8)"
  }

The code initiating all this looks like this: 启动所有这些的代码如下所示:

$skema['ugedage'] = array();

I have tried this as of now (this doesnt return anything, but leaves the the div empty!): 到目前为止,我已经尝试过此操作(此操作不会返回任何内容,但会使div为空!):

<div class="test"><?php echo $skema['ugedage'][4]; ?></div>

I'm including the file (lectio.php) in the index.php this way: 我这样将文件(lectio.php)包含在index.php中:

        <?php
    include("lectio/lectio.php");
        $lectio = new lectio();
        $skemamag = $lectio->get_skema_til_elev(94, 16305782848);
var_dump($skemamag); ?>

$skemamag

Is outputting all the arrays for that specific ids. 正在输出该特定ID的所有数组。

EDIT: The whole public function, it goes into a student platform and search for elements on a students schedule. 编辑:整个公共功能,它进入一个学生平台,并在学生日程中搜索元素。 The idea is to make the arrays appear with an element around, so it would be possible to style the specific array. 这样做的想法是使数组在元素周围出现,因此可以对特定数组进行样式设置。

    public function get_skema($url_til_skema)
{
    $lectio_html = $this->get_content($url_til_skema);
    $skema = array(); //Definer skema variabel til return værdi!
    $skema['titel'] = ''; //Definer struktur for titel
    $skema['ugedage'] = array(); //Definer struktur for liste over ugedage
    $skema['dagskema'] = array(); //Definer struktur for dagskemaet
    $html = new simple_html_dom();
    $html->load($lectio_html);
    $skema['titel'] = $html->find('.s2weekHeader td', 0)->plaintext; //Hent overskriften uden html (uge og år)
    $headers = $html->find('.s2dayHeader td'); //Søg efter listen over dage i det pågældende skema 
    for($i=1;$i<count($headers);$i++) //Bemærk vi starter i = 1 fordi vi springer den første over (altid tom)
    {
        $skema['ugedage'][] = $headers[$i]->plaintext; //Tilføj alle overskrifterne på ugedagene (uden html)
        $skema['dagskema'][$headers[$i]->plaintext] = array(
            'noter' => array(),
            'fag' => array()
            ); //Tilføj en struktur til nøglen for hvert dagskema
    }
    $collection = $html->find('.s2skemabrikcontainer'); //Søg efter den ydre skema container for hver dag
    /*
    BEMÆRK!!!! 
    Den ydre skema container, der er langt flere end antal dage. Feks. kan en uge med 5 dage
    have 11 ydre containere pga. 5 til moduler, 5 til "noter" i toppen, og én til sidebaren.
    */
    $skemabrik = new simple_html_dom(); //Definer den her for genbrugens skyld da den kan tømmes efter hver iteration
    for($i=0; $i<count($skema['ugedage']); $i++) //Iterer alle noterne i "toppen" af ugedagene
    {
        $skemabrik->load($collection[$i]->innertext);
        $noter = $skemabrik->find('.s2skemabrikcontent');
        foreach($noter as $note)
        {
            //Tilføj til liste over noter for dagen
            $skema['dagskema'][$skema['ugedage'][$i]]['noter'][] = trim(html_entity_decode($note->plaintext));
        }
    }
    //Iterer alle fagene/noterne i selve skemaet for hver dag
    //Vi starter iteratoren i count($skema['ugedage']) + 1 fordi vi vil springe topnoter + et stil element i mellem over.
    for($i=count($skema['ugedage'])+1; $i<(2*count($skema['ugedage'])+1); $i++) 
    {
        $skemabrik->load($collection[$i]->innertext);
        $noter = $skemabrik->find('.s2skemabrikcontent');
        foreach($noter as $note)
        {
            //Tilføj til dagskemaet
            $skema['dagskema'][$skema['ugedage'][$i-count($skema['ugedage'])-1]]['fag'][] = array(
                'tekst' => trim(html_entity_decode($note->plaintext)),
                'note' => ''
                );
        }
    }
    for($i=5; $i<count($skema['ugedage'])+6; $i++) //Gennemgå alle dagene
    {
        $skemabrik->load($collection[$i]->innertext); //Indlæs hver dag
        $skemabrik_elementer = $skemabrik->find('.s2skemabrik'); //Søg efter alle skemabrikkerne på denne dag
        for($y=0; $y<count($skemabrik_elementer); $y++) //Gennemgå alle noterne til hvert fag/note/whatever
        {
            //Tilføj noten til det korrekte fag 
            $skema['dagskema'][$skema['ugedage'][$i-6]]['fag'][$y]['note']=trim(html_entity_decode($skemabrik_elementer[$y]->title));
        }
    }
    return $skema;
}

What am I doing wrong here? 我在这里做错了什么?

Thanks in advance 提前致谢

You are probably getting an out of bounds error. 您可能会遇到错误。 In most programming languages (PHP included), array indices start at 0 . 在大多数编程语言(包括PHP)中,数组索引从0开始 So to get that last element, you need number 4: 因此,要获取最后一个元素,您需要数字4:

<div class="test"><?php echo $skema['ugedage'][4]; ?></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM