关于多维数组的PHP问题

时间:2010-09-16 04:08:57

标签: php arrays key-value

我的数组看起来像这样:

Array ( [Bob] => Red [Joe] => Blue )

但它可能是任何数量的人,如:

Array ( [Bob] => Red [Joe] => Blue [Sam] => Orange [Carla] => Yellow)

基本上我希望PHP接受这个数组并回显它,看起来像是:

Bob - Red
Joe - Blue
Sam - Orange
Carla - Yellow

我知道我需要遍历数组,这就是我尝试过的:

for ($row = 0; $row < count($array); $row++) {
echo $array[0] . " - " . $array[1];
}

我收到以下错误:未定义的偏移量:0,未定义的偏移量:1

我意识到这不起作用,因为当数组的值是字符串时我正在尝试使用索引。有没有什么方法可以使用像这样的位置索引与只包含字符串的多维数组?

由于

3 个答案:

答案 0 :(得分:8)

你想要的是一个foreach循环。

foreach ($array as $key => $value) {
    echo $key . ' - ' . $value;
}

(如果您需要换行符,请将"\n"追加到最后)

您的数组实际上不是多维。一个例子是

array(
    array(
        'bob',
        'tom'
    )
);

注意数组 中的数组。

您的数组通常称为关联数组。

答案 1 :(得分:2)

不重新检查我的PHP知识:

foreach($array as $key => $value) {
    echo "$key - $value<br />\n";
}

答案 2 :(得分:1)

您需要foreach

<?php 
$arr = array("bob" => "red", "paul" => "blue", "preo" => "yellow", "garis" => "orange");
foreach ($arr as $key => $value) {
    echo $key ." - ".$value."<br />";
}
?>

将打印:

bob - red
paul - blue
preo - yellow
garis - orange

顺便说一下,它是associative数组,而不是multidimensional数组,更像是:

$array[1][0][3]