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,实际上我的代码比这个长一点。我会在下面添加它。请帮助我解决这个问题。那么,我解决了你的问题了吗?