我有一个多维数组,我需要从中获取一些数据,做一些简单的数学运算并在js图表上显示它们。 我唯一的问题是我无法从数组中获取数据。 这是阵列的外观:
object(stdClass) [211]
public 'countries' =>
array (size=30)
0 =>
array (size=1)
0 =>
object(stdClass)[215]
public 'country' => string 'RO' (lenght=2)
public 'clicks' => int 4
1 =>
object(stdClass)[215]
public 'country' => string 'RU' (lenght=2)
public 'clicks' => int 1
1 =>
array (size=1)
0 =>
object(stdClass)[215]
public 'country' => string 'RU' (lenght=2)
public 'clicks' => int 4
1 =>
object(stdClass)[215]
public 'country' => string 'RO' (lenght=2)
public 'clicks' => int 2
......等到29(有30天)所以每天都有来自不同国家的点击。 我需要做的是以这种格式从数组中提取数据:
name: ['RO', 'RU']
data: [6, 5]
我希望你明白我想做什么。 我不是专家,只是初学者,我无法解决这个问题。
编辑:最后,我需要说x国家在过去30天内有x次点击。 请注意,我不知道巫婆国家在阵列中,因为这是来自通过点击提供前10个国家/地区的API。 因此,在每一天都可能是一个前一天没有的国家,依此类推。
编辑2:根据我的经验,这就是我的尝试:
function getCountriesByClicks($data)
{
$jsData = [];
$clicks = [];
$country = [];
for ($x = 0; $x < sizeof($data->data[0]->data->countries); $x++) {
foreach ($data->data[0]->data->countries[$x] as $value) {
array_push($country, $value->country);
array_push($clicks, $value->clicks);
}
$jsData[] = ['name' => $country, 'data' => $clicks];
}
return json_encode($jsData);
}
忽略json返回,只是在我的javascript图表中使用。
谢谢!
答案 0 :(得分:0)
尝试以下方法:
$name = array();
$data = array();
array_map(function($array){
array_map(function($obj){
$name[] = $obj->country;
$data[] = $obj->clicks;
},$array);
},$yourObject->countries);