2014-10-27 145 views
0

我有一個數組,看起來像這樣:循環通過二維數組

$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>'; 
} 
+0

你是什麼意思的'$ key1'和'$ key2'? – MH2K9 2014-10-27 15:54:55

+0

@PleaseWait請參閱我更新的數組,它會更好理解。 – 2014-10-27 15:57:34

+1

你的設計對我來說似乎很奇怪。爲什麼要爲這些值創建一個2D數組,而不是像這樣: $ array = array(「Google」=>「http://google.com」,「Yahoo」=>「http:// yahoo。com)「; – vcanales 2014-10-27 16:19:39

回答

6

爲了回聲出你有每個陣列中選擇其索引的位 -

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

下面是一個example

6

使用嵌套foreach()因爲它是二維數組。這裏

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>'; 
} 
+1

請編輯你的答案,添加一個解釋你的代碼是如何工作的以及它如何解決OP的問題,許多SO海報是新手,並且不理解代碼你已發佈 – 2014-10-27 15:35:34

+0

如何定位一個鍵?例如,我想在foreach循環內的某處添加$ key1,並在其他地方添加$ key2。 – 2014-10-27 15:40:36

+0

請參閱我的更新問題以獲得對我的請求的解釋 – 2014-10-27 15:49:17

3

通過它來循環最簡單的方法是:

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

編輯

如果你知道你的陣列將有總是隻有兩個指標,那麼你可以試試這個:

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

但是我如何定位一個關鍵?例如我想在某個地方添加$ key1 foreach循環和$ key2在其他地方。 – 2014-10-27 15:40:17

+0

請參閱我的更新問題以解釋我正在嘗試做什麼。 – 2014-10-27 15:49:46

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

這不會降低服務器的性能。

+0

雖然我如何定位鍵?請參閱我編輯的答案。 – 2014-10-27 15:54:21

+0

等一下@HenrikPetterson ... – cuSK 2014-10-27 15:56:57

+0

你想使用foreach鍵還是最簡單的循環版? – cuSK 2014-10-27 15:57:58