PHP:一起添加数组值

时间:2013-04-08 15:07:21

标签: php arrays json

我认为这比标题听起来有点难,但我可能完全错了。我有一个像这样的数组:

[["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图形插件。如果需要更多信息,请告诉我。

2 个答案:

答案 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