如何定位数组中的对象?
How do I target an object inside an array?
我在 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]
以数组中第一个对象的值为目标。然而,这针对整个对象,因此 returns 什么都没有。导致以下错误输出:
<div class="container">
<br>
Wel rillen
</div>
<div class="container">
<br>
Niet rillen
</div>
我不知何故需要通过它的对象名称来定位第一个数组项,这个对象名称对于每个数组项都是不同的,我该如何在不知道对象名称是什么的情况下定位它的内容?
对于您的情况,使用 key() 获取密钥名称,如:
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo $value[key($value)];
echo '<br>';
echo $value['extra'];
echo '</div>';
}
你有一个关联数组,没有索引。所以你的数组实际上不包含“0”元素。但是您可以通过调用 first()
函数来获取嵌套数组的第一个元素。
您的代码将如下所示:
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo first($value);
echo '<br>';
echo $value['extra'];
echo '</div>';
}
我相信这是一个二维数组。
第一个 [] 是数组对象的位置,第二个 [] 是项目在对象数组中的位置。
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo $value[0][0];
echo '<br>';
echo $value[0]['extra'];
echo '</div>';
}
使用这个
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo first($value);
echo '<br>';
echo $value['extra'];
echo '</div>';
}
<?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>';
}
我在 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]
以数组中第一个对象的值为目标。然而,这针对整个对象,因此 returns 什么都没有。导致以下错误输出:
<div class="container">
<br>
Wel rillen
</div>
<div class="container">
<br>
Niet rillen
</div>
我不知何故需要通过它的对象名称来定位第一个数组项,这个对象名称对于每个数组项都是不同的,我该如何在不知道对象名称是什么的情况下定位它的内容?
对于您的情况,使用 key() 获取密钥名称,如:
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo $value[key($value)];
echo '<br>';
echo $value['extra'];
echo '</div>';
}
你有一个关联数组,没有索引。所以你的数组实际上不包含“0”元素。但是您可以通过调用 first()
函数来获取嵌套数组的第一个元素。
您的代码将如下所示:
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo first($value);
echo '<br>';
echo $value['extra'];
echo '</div>';
}
我相信这是一个二维数组。
第一个 [] 是数组对象的位置,第二个 [] 是项目在对象数组中的位置。
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo $value[0][0];
echo '<br>';
echo $value[0]['extra'];
echo '</div>';
}
使用这个
foreach ($myarray as $key => $value) {
echo '<div class="container">';
echo first($value);
echo '<br>';
echo $value['extra'];
echo '</div>';
}
<?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>';
}