2011-05-05 177 views
2

嗨我试图从数组中打印一个有序列表。 这是我的代码截至目前:来自阵列的PHP排序列表

<?php 


    $Salespeople = array(
    "Hiroshi Morinaga"=>57, 
    "Judith Stein"=>44, 
    "Jose Martinez"=>26, 
    "Tyrone Winters"=>22, 
    "Raja Singh"=>21); 

    foreach ($Salespeople as $Salesperson) { 
     echo key($Salespeople) . ": $Salesperson cars<br />"; 
     next($Salespeople); 
    } 
    ?> 

我的问题是,结果是这样的:

Judith Stein: 57 cars 
    Jose Martinez: 44 cars 
    Tyrone Winters: 26 cars 
    Raja Singh: 22 cars 
    : 21 cars 

我怎样才能使它因此它显示所有的名字,而是打印出像这个?

Hiroshi Morinaga: 57 
    Judith Stein: 44 cars 
    Jose Martinez: 26 cars 
    Tyrone Winter: 22 cars 
    Raja Singh: 21 cars 

谢谢。

回答

3

想要这样的事情吗?

foreach($Salespeople as $fullname => $cars) 
{ 
    echo $fullname . ": " . $cars . " cars<br />"; 
} 
+0

非常感谢!大帮忙! – martinJ 2011-05-05 09:08:52

1

使用的foreach只是simplier:

foreach ($Salespeople as $Salesperson => $Cars) { 
    echo $Salesperson . ": $Cars cars<br />"; 
} 
+0

改变'$ Salespeople'最后一行到'$ Salesperson'和它完美的作品 - 否则,所有的名字成为'阵'。 – martincarlin87 2011-05-05 09:02:20

+1

非常感谢你们,这么大的帮助! – martinJ 2011-05-05 09:02:57

+0

点击接受是一种很好的方式说谢谢! :) – Ben 2011-05-05 09:04:55

1

foreach会遍历列表本身 - 你不需要使用keynext

foreach ($Salespeople as $name => $number) { 
    echo $name . ": $number cars<br />"; 
} 
0

只是为了好玩,你也可以使用array_map

function echoSalesperson($v) { 
    echo $v . ": $Salesperson cars<br />" 
} 

array_map($Salespeople,'echoSalesperson');