如何遍历数组并在JSON中添加它

时间:2013-04-26 18:24:15

标签: php jquery mysql arrays json

我有一个包含我的sql数据库中的几个变量的数组。

{"gold":"0","silver":"0","bronze":"0","gdp":"12959563902","population":"3205000","country_name":"Albania"},              {"gold":"1","silver":"0","bronze":"0","gdp":"188681000000","population":"35468000","country_name":"Algeria"}

我有一个名为$ score的额外变量,它使用数据库中的信息来计算此分数。我想知道如何循环并为数组中的每个国家添加正确的分数。

我的原始代码:

$row = $res->fetchRow();
$resGold = $row['gold'];
$resSilver = $row['silver'];
$resBronze = $row['bronze'];
$resGdp = $row['gdp'];
$resPopulation = $row['population'];
$resCountry = $row['country_name'];
$gold_score = ($resGold * $gold_value);
$silver_score = ($resSilver * $silver_value);
$bronze_score = ($resBronze * $bronze_value);
if($population == true){
$score = (($gold_score + $silver_score + $bronze_score)/$resPopulation);
}
else if($gdp == true){
$score = (($gold_score + $silver_score + $bronze_score)/$resGdp);
}
$result = $res->fetchAll();
$result[] = array('score' => $score);
echo json_encode($result);

1 个答案:

答案 0 :(得分:0)

您的代码将是这样的:

$json_data = '{"gold":"0","silver":"0","bronze":"0","gdp":"12959563902","population":"3205000","country_name":"Albania"},
        {"gold":"1","silver":"0","bronze":"0","gdp":"188681000000","population":"35468000","country_name":"Algeria"}';

$countries_info_new = array();
$countries_info = json_decode($json_data);

foreach($countries_info as $country_info){
   $country_info['score'] = Get_country_score($country_info['country_name']);
   $countries_info_new[]=$country_info;
}

$new_json_data = json_encode($countries_info_new);