循环通过二维数组

时间:2014-10-27 15:31:49

标签: php arrays loops foreach

我有一个如下所示的数组:

$array = array(
    array(
        "http://google.com",
        "Google"
    ),

    array(
        "http://yahoo.com",
        "Yahoo"
    )
);

循环使用它的最简单方法是什么。类似的东西:

foreach ($array as $arr) {
    // help
}

编辑:我如何定位键,例如,我想做:

foreach ($array as $arr) {
    echo '<a href" $key1 ">';
    echo ' $key2 </a>';
}

6 个答案:

答案 0 :(得分:9)

为了回显这些位,你必须在每个数组中选择它们的索引 -

foreach($array as $arr){
    echo '<a href="'.$arr[0].'">'.$arr[1].'</a>';
}

这是example

答案 1 :(得分:6)

使用嵌套foreach(),因为它是2D数组。这里的例子

foreach($array as $key=>$val){ 
    // Here $val is also array like ["Hello World 1 A","Hello World 1 B"], and so on
    // And $key is index of $array array (ie,. 0, 1, ....)
    foreach($val as $k=>$v){ 
        // $v is string. "Hello World 1 A", "Hello World 1 B", ......
        // And $k is $val array index (0, 1, ....)
        echo $v . '<br />';
    }
}

在第一个foreach() $val中也是一个数组。因此使用嵌套的foreach()。第二个foreach() $v是字符串。

根据您的需求更新

foreach($array as $val){
    echo '<a href="'.$val[0].'">'.$val[1].'</a>';
}

答案 2 :(得分:4)

循环使用它的最简单方法是:

foreach ($array as $arr) {
    foreach ($arr as $index=>$value) {
        echo $value;
    }
}

修改

如果你知道你的数组总是只有两个索引,那么你可以试试这个:

foreach ($array as $arr) {
    echo "<a href='$arr[0]'>$arr[1]</a>";
}

答案 3 :(得分:2)

循环的方法是,

foreach($array as $arr)
foreach($arr as $string) {
        //perform any action using $string
}

使用第一个没有{ }的foreach循环用于最简单

根据您的请求,这可能是使用嵌套数组的最简单方法。

针对您编辑的问题。

使用密钥的数组声明错误。

$array = array( 
    "http://google.com" => "Google",
    "http://yahoo.com" => "Yahoo" );

然后,使用以下内容。

foreach ($array as $key => $value)
    echo "<a href='{$key}'>{$value}</a>";

这并不会降低服务器的性能。

答案 4 :(得分:2)

首先像这样修改变量:

$array = array(
          array("url"=>"http://google.com",
                "name"=>"Google"
          ),
          array("url"=>"http://yahoo.com",
                "name"=>"Yahoo"
          ));

然后您可以像这样循环:

foreach ($array as $value)
{ 
   echo '<a href='.$value["url"].'>'.$value["name"].'</a>'
}

答案 5 :(得分:0)

在现代版本的php中,您可以为所选择的变量分配(解构)子数组值。

代码:(Demo

Ecto.Multi

输出:

$array = [
    ["http://example1.com", "Example 1"],
    ["http://example2.com", "Example 2"]
];

foreach ($array as [$key1, $key2]) {
    echo "<a href=\"$key1\">$key2</a>\n";
}