如何定位数组中的对象?

时间:2015-02-23 10:51:08

标签: php arrays object

我在php中有以下数组:

$myarray = array(
            array('normaal' => _("Normale versie"),'extra' => "Wel rillen"),
            array('aangepast' => _("De aangepaste versie"),'extra' => "Niet rillen")
         );

我正在尝试在HTML中获取以下输出:

<div class="container">
    Normale versie
    <br>
    Wel rillen
</div>
<div class="container">
    De aangepaste versie
    <br>
    Niet rillen
</div>

我尝试使用foreach循环循环数组,如下所示:

foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    echo $value[0];
    echo '<br>';
    echo $value['extra'];
    echo '</div>';
}

希望$value[0]将目标指向数组中第一个对象的值。然而,这针对整个对象,因此不返回任何内容。导致以下错误输出:

<div class="container">

    <br>
    Wel rillen
</div>
<div class="container">

    <br>
    Niet rillen
</div>

我不知何故需要通过它的对象名来定位第一个arrayitem,这个对象名对于每个数组项是不同的,如何在不知道对象名是什么的情况下定位它的内容?

5 个答案:

答案 0 :(得分:0)

根据您的情况,使用key()获取密钥名称,如下:

foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    echo $value[key($value)];
    echo '<br>';
    echo $value['extra'];
    echo '</div>';
}

答案 1 :(得分:0)

你有一个关联数组,没有索引。所以你的数组实际上不包含“0”元素。但是你可以通过调用first()函数来获得嵌套数组的第一个元素。 您的代码将如下所示:

foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    echo first($value);
    echo '<br>';
    echo $value['extra'];
    echo '</div>';
}

答案 2 :(得分:0)

我相信这是一个二维阵列。

第一个[]是数组对象的位置,第二个[]是项目数组中项目的位置。

foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    echo $value[0][0];
    echo '<br>';
    echo $value[0]['extra'];
    echo '</div>';
}

答案 3 :(得分:0)

使用此

foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    echo first($value);
    echo '<br>';
    echo $value['extra'];
    echo '</div>';
}

答案 4 :(得分:0)

<?php
$myarray = array(
    array('normaal' => "Normale versie", 'extra' => "Wel rillen"),
    array('aangepast' => "De aangepaste versie", 'extra' => "Niet rillen")
);
foreach ($myarray as $key => $value) {
    echo '<div class="container">';
    reset($value);
    echo $value[key($value)];
    echo '<br>';
    echo $value['extra'];
    echo '</div>';
}