我认为这比标题听起来有点难,但我可能完全错了。我有一个像这样的数组:
[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]]
我希望能够采用常见的值,在本例中为londrina和tiradentes,并将这些数字加在一起。我的PHP代码如下:
$qry = mysql_query("SELECT * FROM bap WHERE semana = '".$week."'");
$rows = array();
while($row = mysql_fetch_array($qry)) {
$rows[] = $row;
}
$resultstr = array();
foreach($rows as $row) {
$resultstr[] = '["'.$row['zona'].'",'.$row['numero'].']';
}
$result = implode(', ',$resultstr);
print '['.$result.']';
我不确定是否还需要更多信息。该数组以此格式输出,用于jquery json图形插件。如果需要更多信息,请告诉我。
答案 0 :(得分:4)
试试这个:
$arr = [["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]];
$new_arr = [];
foreach ($arr as $a) {
list($name, $num) = $a;
if (!isset($new_arr[$name])) {
$new_arr[$name] = 0;
}
$new_arr[$name] += $num;
}
var_dump($new_arr);
编辑OP
完整地使用此代码,应该给出所需的结果:
$qry = mysql_query("SELECT * FROM bap WHERE semana = '".$week."'");
while ($row = mysql_fetch_array($qry)) {
$rows[] = array($row['zona'], $row['numero']);
}
$new_arr = [];
foreach ($rows as $a) {
list($name, $num) = $a;
if (!isset($new_arr[$name])) {
$new_arr[$name] = 0;
}
$new_arr[$name] += $num;
}
var_dump($new_arr);
答案 1 :(得分:3)
SELECT zona,
SUM(numero) AS sum
FROM bap
WHERE semana = $week
GROUP BY zona