PHP:将数组值添加到一起
我相信这比标题听起来要难一些,但我可能完全错了。我有这样一个数组:PHP:将数组值添加到一起,php,arrays,json,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."'");
[["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图形插件。如果需要更多信息,请告诉我。尝试以下方法:
$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);
说未定义的索引:numeroi你的列叫numero吗?从代码的外观来看,它是;但如果没有,则替换为需要求和的适当列Yes,即collumns名称,然后在PHP代码中使用
sum
,因为SQL在名为sum
的新临时列中使用了numero
的所有相关值的和的别名。。。。或者将别名更改为numero
谢谢!我知道出了什么问题。命名列sum与代码不符,我只是将它改为numero,一切正常。我甚至不知道这个小组的情况。哈哈,我想我是,2分钟,从来没有这么快回答过一个问题。这不管用。。。我编写的PHP代码输出该数组,并试图将您的代码合并到我的代码中,这给了我一个错误警告:为foreach()提供的参数无效
SELECT zona,
SUM(numero) AS sum
FROM bap
WHERE semana = $week
GROUP BY zona