2015-08-08 69 views
0

我想要做這樣的PHP如何使用多維數組

$cars = array('1', '2', '3', '4', '5', '6'); 
$cars = array('7', '8', '9', '10', '11', '12'); 
$cars = array('13', '14', '15', '16', '17', '18'); 

foreach ($cars as $car){ 
    echo $car[0].'<br />'; 
    echo $car[1].'<br />'; 
    echo $car[2].'<br />'; 
    echo $car[3].'<br />'; 
    echo $car[4].'<br />'; 
    echo $car[5].'<br />'; 
    echo '----------------<br />'; 
} 

東西得到這樣

1 
2 
3 
4 
5 
6 
---------------- 
7 
8 
9 
10 
11 
12 
---------------- 
13 
14 
15 
16 
17 
18 

我希望這段代碼的工作,但我得到這樣的錯誤結果:​​

我已經嘗試了很多東西,如$cars = array(array('1', '2', '3', '4', '5', '6'));但他們都沒有爲我工作,所以請任何人都可以幫助我這個,我是新來的PHP,我希望學習莫e來自你。

+0

在你的前3行嘗試'$ cars [] = array(...')(在'$ cars'後面加'[']'),現在你每次覆蓋'$ cars' – Sean

+0

退房首先是一個關於多維數組的教程,然後如果你有一個特定的問題,說明你的代碼不起作用,那麼你的這兩個嘗試都不建議你先試過,你的第一次嘗試只是重新定義了幾乎所有的編程語言第二次嘗試更接近,試試https://www.developphp。com/page.php?id = 229 – scrappedcola

+0

謝謝@Sean –

回答

4

您每次都覆蓋您的數組,而不是添加到它。

嘗試這種情況:

$cars[] = array('1', '2', '3', '4', '5', '6'); 
$cars[] = array('7', '8', '9', '10', '11', '12'); 
$cars[] = array('13', '14', '15', '16', '17', '18'); 

這是相同

$cars = array(
    array('1', '2', '3', '4', '5', '6'), 
    array('7', '8', '9', '10', '11', '12'), 
    array('13', '14', '15', '16', '17', '18') 
); 
+0

哇這樣一個簡單的解決方案,並且我在這方面一直在思考,謝謝你真棒的傢伙,你需要等待9分鐘才能找到完美的答案! –

+0

@Maria Bernal,請看我的答案。你得到的具體錯誤不在於覆蓋。 – trogne

+0

@trogne如果數組的格式是正確的,他的循環是好的,但這不是因爲(如上)他覆蓋而不是添加 – rjdown

0

你需要了解的是一個2維數組是數組的數組。

$cars1 = array('1', '2', '3', '4', '5', '6');
$cars2 = array('7', '8', '9', '10', '11', '12');
$cars3 = array('13', '14', '15', '16', '17', '18');
$cars2DArray = array($cars1, $cars2, $cars3)

foreach ($cars2DArray as $cars){
foreach($cars as $car){
echo $car.'<br>';
}
echo '----------------<br>'; }

+0

非常感謝! –

0
$cars = array(
    array('1', '2', '3', '4', '5', '6'), 
    array('7', '8', '9', '10', '11', '12'), 
    array('13', '14', '15', '16', '17', '18') 
); 

foreach ($cars as $sub) { 
    foreach($sub as $item) { 
     echo $item; 
    } 
} 

您遍歷每個數組,然後遍歷這些數組中的每個項目。

+0

非常感謝! –

0

如果你想在每6個數字後有一個換行符,這裏有一個簡單的解決方案。

<?php 

$cars = array(); 
$cars= array('1', '2', '3', '4', '5', '6','7', '8', '9', '10', '11', '12','13', '14', '15', '16', '17', '18'); 
$c=0; 
foreach($cars as $car) 
{ 
    if($c==6) 
    { 
     echo '----------------<br />'; 
     $c=0; 
    } 
    echo $car . "<br>"; 
    $c++; 
} 

?> 
0

Uninitialized string offset錯誤並不是因爲重寫。

你這個得到了同樣的錯誤:

$cars = array('1', '2', '3', '4', '5', '6'); 

foreach ($cars as $car){ 
    echo $car[0].'<br />'; 
    echo $car[1]; 
} 

這裏$car不是一個數組,它是數組值。

它將適用於$car[0],導致php知道如何解釋唯一的值,但$car[1]不存在(Uninitialized)。

+0

我想也許你錯過了這個問題的「多維」部分。 – rjdown