2011-05-05 107 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');