打印数组键和值

时间:2015-07-08 11:49:49

标签: php arrays

给出了一个名为" people"如果人们的名字与他们的城市相关联,我需要检索来自同一城市的人数。

PEOPLE      CITY
John        Baltimore
David       London
Paula       Baltimore
Mark        Baltimore
Alex        London

我的代码如下:

$array_cities = array();
$query = "SELECT * FROM people";
$result = mysql_query($query);
if ($result) {
    while ($record = mysql_fetch_array($result))
    $array_cities[] = $record['city'];
}
print_r(array_count_values($array_cities));

我在浏览器中得到的是:

Array ( [Baltimore] => 3 [London] => 2 )

输出正确,但图形不好。我想要的是:

Baltimore => 3 London => 2

还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

这只是print_r()的输出。如果你想要别的东西,只需在数组中循环打印它:

foreach(array_count_values($array_cities) as $k => $v)
   echo $k . " => " . $v . " ";

<强>旁注:

除了print_r()之外,还有var_dump()var_export(),它们都是&#34;调试功能&#34;。因此,使用它们进行调试,而不是用于打印&#34;漂亮的格式化输出&#34;。

答案 1 :(得分:0)

你需要使用MySQL函数COUNT(*)&amp; GROUP BY子句:

$array_cities = array();
$query = 'SELECT COUNT(*) AS `persons`, `city` FROM `people` GROUP BY `city`';
$result = mysql_query($query);
if ($result) {
    while ($record = mysql_fetch_array($result)) {
        $array_cities[$record['city']] = $record['persons'];
    }
}
print_r($array_cities);