PHP关于多维数组的问题

3

我的数组长这样:

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。
我意识到这不起作用,因为我试图在数组值为字符串时使用索引。是否有任何方法可以在仅包含字符串的多维数组中使用位置索引?
谢谢。

1
我认为那是一个关联数组,而不是多维数组... - David Thomas
3个回答

8
你需要的是一个foreach循环。
foreach ($array as $key => $value) {
    echo $key . ' - ' . $value;
}

(如果你想换行,将"\n"添加到末尾)

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

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

请注意数组内部的数组。

你的数组通常被称为关联数组


你可能也应该使用\n - too much php

2

在没有重新检查我的php知识的情况下:

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

你应该也使用\n - too much php

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

顺便提一下,这是一个“关联”数组,而不是“多维”数组,后者更像是:
$array[1][0][3]

啊,这个很好用。谢谢你的回复,难怪我找不到任何可用的东西——我一直在搜索多维数组。 - samJL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接