2015-08-08 37 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