我有一个这样的数组:
Array
(
[47] => Array
(
[name1] =>
)
[43] => Array
(
[name2] =>
)
[53] => Array
(
[name3] => selected
)
[50] => Array
(
[name4] =>
)
[51] => Array
(
[name5] =>
)
[37] => Array
(
[name6] =>
)
)
我希望显示name1,name2,name3,name4,name5,name6的值。 我尝试过:
for($i = 0; $i < 6; $i++){
echo $array_object[$i] . "<br/>";
}
但它不起作用。 我该如何解决?谢谢!
答案 0 :(得分:2)
您可以使用array_keys函数获取索引,然后以数字方式使用它们:
$keys=array_keys($array_object);
for($i = 0; $i < 6; $i++){
echo $array_object[$keys[$i]][{'name'.($i+1)}]."<br/>";
}
这将允许您使用索引[0],即使它根据您问题中的示例数据引用索引[47]。
虽然我很难检查您的数据是否总是包含至少6个条目(同样基于您发布的示例代码),但如果您的循环超过阵列中的条目数,您将获得未定义的索引错误,除非您先检查它。
答案 1 :(得分:0)
使用以下示例之一:
foreach($elements AS $element) {
foreach($element AS $key=>$value) {
if(!preg_match('/^name[0-9]+/s', $key)) // match "nameNUM" style text
continue;
echo $value.'<br/>';
}
}
或
foreach($elements AS $element) {
for($i=1; $i<=6; $i++) {
if(!isset($element['name'.$i]))
continue;
echo $value.'<br/>';
}
}
或
$accepted_values = array('name1','name2','name3','name4','name5','name6');
foreach($elements AS $element) {
foreach($element AS $key=>$value) {
if(!in_array($key, $accepted_values))
continue;
echo $value.'<br/>';
}
}
答案 2 :(得分:0)
如果你的数组没有排序,你需要创建一个(真的长而不好)循环。
foreach($array_object as $subArray){
foreach ($subArray as $elem){
echo ($elem);
}
}
请考虑简化您的阵列,因为有大量数据,它将会很长。
答案 3 :(得分:0)
foreach ($array_object AS $entry) {
foreach($entry AS $key=>$val) {
echo $val.'<br />';
}
}
答案 4 :(得分:0)
尝试array_values
很简单:
$array_object= array_values($array_object);
for($i = 0; $i < count($array_object); $i++)
{
echo $array_object[$i]['name']."<br/>";
}