獨立

2013-07-16 110 views
-2

我已經試過很多無法從嵌套的數組獨立

在這裏得到的值嵌套數組,並獲得價值只有PHP是數組:

$array = Array (
    Array (20, 21, 22), 
    Array (20, 21, 23), 
    Array (20, 22, 23), 
    Array (21, 22, 23) 
); 

輸出應該像

20 21 22 
20 21 23 
20 22 23 
21 22 23 

請幫忙

+5

詢問代碼的問題必須**證明最小了解正在解決的問題**。包括嘗試解決方案,爲什麼他們沒有工作,以及*期望*結果。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

我重新格式化您的數組是有效的PHP。 – rjmunro

回答

2
$arr = [ 
    [20, 21, 22], 
    [20, 21, 22], 
    [20, 21, 22], 
    [20, 21, 22] 
]; 

foreach ($arr as $row) { 
    echo implode(' ', $row) . '<br />'; 
} 
+0

也許你應該注意到,短陣列語法是在PHP 5.4(去年?)中引入的,它可能並不在所有服務器上,尤其是在共享託管服務器上不存在 – cypherabe

1

這段代碼會遍歷數組中的每個頂層元素,爲每個外部數組元素放置行元素。

<table> 
<?php foreach ($array as $row): ?> 
    <tr><td><?php echo implode("</td><td>", $row) ?></td></tr> 
<?php endforeach; ?> 
</table> 
+0

downvoted ...爲什麼? – Orangepill

+0

這不是最易讀的代碼,也沒有解釋。 – rjmunro

+0

@rjmunro雖然代碼在視圖上下文中非常可讀,而不是數據操作上下文,因爲將數組展平爲字符串是一種視圖操作。無論如何增加了一個解釋和縮影。 – Orangepill

0
function recursion($arr){ 
    foreach($arr as $key => $val){ 
     if (is_array($val)){ 
      recursion($val); 
     } else { 
      print($val." "); 
     } 
    } 
} 
+1

建議:看看'array_walk_recursive'。 – Pieter

2

可以使用foreach循環:

$array; // this is your 2d array 
foreach ($array as $k) { 
    $out = ""; 
    foreach ($k as $n) { 
     $out .= $n." "; 
    } 
    print_r($out."\n"); 
} 
0

最簡單的方法是遍歷與foreach外陣列和內爆內數組:

$array = Array (
    Array (20, 21, 22), 
    Array (20, 21, 23), 
    Array (20, 22, 23), 
    Array (21, 22, 23) 
); 

foreach ($array as $row) { 
    echo implode(" ", $row) . "\n"; 
} 
+0

'.'是php中的連接運算符...而不是' +',這會引發致命錯誤。 – Orangepill

+0

@Orangepill哎呀,現在修好了。 – rjmunro