Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何显示嵌套数组中的值_Php_Arrays_Nested - Fatal编程技术网

Php 如何显示嵌套数组中的值

Php 如何显示嵌套数组中的值,php,arrays,nested,Php,Arrays,Nested,请帮助我提取并显示此数组中的值 这是我执行print\r($array)时的输出: Array ( [0] => SPD Object ( [DRIVERNAME] => SPD Barry [STARTTIME] => 07:44 [FINISHTIME] => 18:12 [STOP] => [SEQUENCENO]

请帮助我提取并显示此数组中的值

这是我执行
print\r($array)时的输出

Array
(
    [0] => SPD Object
        (
            [DRIVERNAME] => SPD Barry
            [STARTTIME] => 07:44
            [FINISHTIME] => 18:12
            [STOP] => 
            [SEQUENCENO] => 37
            [PLACENAME] => AMSTERDAM ZUIDOOST
            [ARRIVALTIME] => 17:32
        )

    [1] => SPD Object
        (
            [DRIVERNAME] => SPD Brady
            [STARTTIME] => 07:36
            [FINISHTIME] => 15:53
            [STOP] => 
            [SEQUENCENO] => 32
            [PLACENAME] => NIEUWEGEIN
            [ARRIVALTIME] => 15:30
        )

    [2] => SPD Object
        (
            [DRIVERNAME] => SPD Bram
            [STARTTIME] => 08:11
            [FINISHTIME] => 18:32
            [STOP] => 
            [SEQUENCENO] => 32
            [PLACENAME] => LAGE ZWALUWE
            [ARRIVALTIME] => 17:28
        )
)
我想做的是,获取这个驱动程序名和序列号,并回显它们


更新: 我的完整代码可以在下面找到

我得到一个包含此类内容的xml文件:

<TRIP>
    <DRIVERNAME>SPD Barry</DRIVERNAME>
    <STARTTIME>07:44</STARTTIME>
    <FINISHTIME>18:12</FINISHTIME>
    <STOP>
        <SEQUENCENO>1</SEQUENCENO>
        <PLACENAME>ROTTERDAM</PLACENAME>
        <ARRIVALTIME>08:30</ARRIVALTIME>
    </STOP>
</TRIP>

巴里
07:44
18:12
1.
鹿特丹
08:30
这是我的PHP文件,用于将数据收集到数组中

<?php
class SPD {
    function SPD ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // read the XML database of aminoacids
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "TRIP") {
            $molranges = $val;
            // each contiguous pair of array entries are the 
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new SPD($mol);
}

$db = readDatabase("test.xml");

if(is_array($db)){
    foreach($db as $item) {
        echo $item->DRIVERNAME;
        echo $item->SEQUENCENO;
    }
}

?>
$val){
如果($key==“TRIP”){
$molranges=$val;
//每个相邻的数组项对是
//每个分子定义的下限和上限范围
对于($i=0;$iDRIVERNAME;
echo$item->SEQUENCENO;
}
}
?>
我想做的是,回显驱动程序名称和序列号:)

这应该可以:

<?php

class SPD {
    function SPD($aa) {
        foreach ($aa as $k => $v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // read the XML database of aminoacids
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key => $val) {
        if ($key == "TRIP") {
            $molranges = $val;
            // each contiguous pair of array entries are the 
            // lower and upper range for each molecule definition
            for ($i = 0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i = 0; $i < count($mvalues); $i++) {
        if(isset($mvalues[$i]["value"])) {
            $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
        }
    }
    return new SPD($mol);
}

$db = readDatabase("test.xml");

if (is_array($db)) {
    foreach ($db as $item) {
        echo 'ITEM 1 : ' . "\n<br/>";
        echo '---------------' . "\n<br/>";
        echo 'DRIVERNAME : ' . $item->DRIVERNAME . "\n<br/>";
        echo 'SEQUENCENO : ' . $item->SEQUENCENO . "\n\n<br/><br/>";
    }
}
?>
$val){
如果($key==“TRIP”){
$molranges=$val;
//每个相邻的数组项对是
//每个分子定义的下限和上限范围
对于($i=0;$i”;
回显'-------------'.“\n
”; 回显'DRIVERNAME:'。$item->DRIVERNAME.\n
; 回显'SEQUENCENO:'。$item->SEQUENCENO.\n\n

; } } ?>
非常感谢,约翰,但上面写着。。“警告:为/index.php中的foreach()提供的参数无效”请帮助我:(@HarshUChilzY:包含问题中显示的数据的变量的名称是什么?!如果该变量的名称是
$array
,则应为
foreach($array as$item){…}
。如果变量的名称是
$data
,它应该是
foreach($data as$item){…}
。等等。是的,它是$db,我改成了$db,实际上我的代码比这个长一点。我会在下面添加它。请帮助我解决这个问题。那么,我解决了你的问题了吗?