在循环中将PHP数组中的信息提取为单个值

3
    SimpleXMLElement Object
    (
        [deelnemer] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [startnummer] => A1
                        [naam] => Jerry
                        [adres] => Straat 38
                        [postcode] => 0000 MC
                        [woonplaats] => Tilburg
                        [land] => NED
                        [geboortedatum] => 27-02-1988
                        [geslacht] => M
                        [categorie] => Heren
                        [onderdeel] => E. 10 Miles - start 15u00
                    )

                [1] => SimpleXMLElement Object


                    (
                        [startnummer] => A2
                        [naam] => Wesley
                        [adres] => straat 13
                        [postcode] => 0000 AJ
                        [woonplaats] => Tilburg
                        [land] => NED
                        [geboortedatum] => 20-04-1979
                        [geslacht] => M
                        [categorie] => Heren
                        [onderdeel] => E. 10 Miles - start 15u00
                    )

            )
    )

我有一个数组,需要获取每个'deelnemer'的单独值。 我尝试过:
echo '<select>';
foreach ($xml as $obj)
{
    foreach ($obj['deelnemer'] as $ob)
    {

            echo '<option value='.$ob['naam'].'>'.$ob['naam'].'</option>';

    }
}
echo '</select>';

但是我一直收到错误消息。目前我能够减去的仅有“参与者”。

我需要一个PHP代码创建一个循环(for each),其中包含一个下拉选择框,列出参与者的名称。


2
我一直收到错误消息 - 能告诉我们具体是什么错误吗? - Niet the Dark Absol
PHP 警告:在 foreach() 中提供了无效的参数。 - Jasper Renema
1个回答

4

$xml不是一个数组,而是一个对象,因此要访问它的元素,请使用->而不是[],如php how to access object array中所解释的。

尝试这段代码:

echo '<select>';
foreach ($xml->deelnemer as $ob) {
  echo '<option value="' . $ob->naam . '">' . $ob->naam . '</option>';
}
echo '</select>';

1
感谢您的信息。 结果是: <select><option value=></option><option value=></option> </select>--名称没有显示。 - Jasper Renema
1
$ob 也是一个对象。 - ChristianF
1
echo '<select>'; foreach ($xml->deelnemer as $ob) { echo '<option value='.$ob->naam.'>'.$ob->naam.'</option>'; } echo '</select>';可以正常工作,感谢。 - Jasper Renema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接