我有这个多维数组
array(192) {
[0]=>
object(stdClass)#29 (16) {
["campaignId"]=>
int(746598)
["creativeId"]=>
int(11062415)
["targetId"]=>
int(814283)
["targetStatus"]=>
string(6) "ACTIVE"
["impressions"]=>
int(9)
["clicks"]=>
int(0)
["cost"]=>
float(0.3003)
["ctr"]=>
NULL
["cpm"]=>
float(33.3667)
["conversions"]=>
int(2)
["revenue"]=>
float(4)
["cpa"]=>
float(0.1502)
["cr"]=>
float(22.22222)
["averageRank"]=>
float(1.9)
["maxBid"]=>
float(0.884)
["averageBid"]=>
float(0.0334)
}
[1]=>
object(stdClass)#29 (16) {
["campaignId"]=>
int(746598)
["creativeId"]=>
int(11062415)
["targetId"]=>
int(814283)
["targetStatus"]=>
string(6) "ACTIVE"
["impressions"]=>
int(9)
["clicks"]=>
int(0)
["cost"]=>
float(0.3003)
["ctr"]=>
NULL
["cpm"]=>
float(33.3667)
["conversions"]=>
int(2)
["revenue"]=>
float(4)
["cpa"]=>
float(0.1502)
["cr"]=>
float(22.22222)
["averageRank"]=>
float(1.9)
["maxBid"]=>
float(0.884)
["averageBid"]=>
float(0.0334)
}
[2]=>
object(stdClass)#29 (16) {
["campaignId"]=>
int(746595)
["creativeId"]=>
int(11062415)
["targetId"]=>
int(814283)
["targetStatus"]=>
string(6) "ACTIVE"
["impressions"]=>
int(9)
["clicks"]=>
int(0)
["cost"]=>
float(0.3003)
["ctr"]=>
NULL
["cpm"]=>
float(33.3667)
["conversions"]=>
int(2)
["revenue"]=>
float(4)
["cpa"]=>
float(0.1502)
["cr"]=>
float(22.22222)
["averageRank"]=>
float(1.9)
["maxBid"]=>
float(0.884)
["averageBid"]=>
float(0.0334)
}
[3]=>
object(stdClass)#29 (16) {
["campaignId"]=>
int(746595)
["creativeId"]=>
int(11062415)
["targetId"]=>
int(814283)
["targetStatus"]=>
string(6) "ACTIVE"
["impressions"]=>
int(9)
["clicks"]=>
int(0)
["cost"]=>
float(0.3003)
["ctr"]=>
NULL
["cpm"]=>
float(33.3667)
["conversions"]=>
int(2)
["revenue"]=>
float(4)
["cpa"]=>
float(0.1502)
["cr"]=>
float(22.22222)
["averageRank"]=>
float(1.9)
["maxBid"]=>
float(0.884)
["averageBid"]=>
float(0.0334)
}
}
}
我想总结成本的价值并得到每个广告系列ID的平均值,我只得到数组的最后一部分。
这是我的代码
while (strtotime($startDate) <= strtotime($endDate)) {
$newStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($startDate)));
$params = array(
'date'=> $newStartDate
);
$reports = $client->__soapCall('getDailyTargetsStats', array($params));
$dateToday = date('Y-m-d');
$cost = 0;
$resultArray = $reports->stats->item;
foreach ($resultArray as $value) {
$campaignId = $value->campaignId;
$cost += $value->cost;
if ((!$newStartDate) || (!$campaignId)) {
continue;
}
//get campaign names
$campaignName = $this->get_campaigns($campaignId);
$data = array(
'date' => $newStartDate,
'campaign_id' => $campaignId,
'campaign_name' => $campaignName,
'cost' => $cost
);
echo '<pre>';
var_dump($data);
echo '</pre>';
exit;
}
sleep(5);
$startDate = $newStartDate;
}
任何建议都可以,我目前正在CodeIgniter和PHP 5.6中开发它。
那么现在的代码就是这个
foreach ($resultArray as $value) {
$campaignId = $value->campaignId;
$cost += $value->cost;
if ((!$newStartDate) || (!$campaignId)) {
continue;
}
//get campaign names
$campaignName = $this->get_campaigns($campaignId);
$data = array(
'date' => $newStartDate,
'campaign_id' => $campaignId,
'campaign_name' => $campaignName,
'cost' => $cost
);
}
echo '<pre>';
var_dump($data);
echo '</pre>';
exit;
答案 0 :(得分:0)
这可能对您有用:
foreach ($resultArray as $value) {
$campaignId = $value->campaignId;
$newStartDate = $value->newStartDate;
if ((!$newStartDate) || (!$campaignId)) {
continue;
}
$cost = $value->cost;
//get campaign names
$campaignName = $this->get_campaigns($campaignId);
$data[campaign_id] = array(
'date' => $newStartDate,
'campaign_id' => $campaignId,
'campaign_name' => $campaignName,
'cost' => $data['campaign_name'] + $cost
);
}