如何显示数组的特定项

时间:2014-06-20 08:43:02

标签: php arrays

我有一个这样的数组:

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/>";
}

但它不起作用。 我该如何解决?谢谢!

5 个答案:

答案 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/>";
}