我有以下php代码:
// Add the unsubscribers to an array
$unsubs = array();
foreach($unsubscribers->response->Results as $entry2) {
$unsubs[] = $entry2->EmailAddress;
}
// Loop through the subscribers
foreach($result->response->Results as $entry) {
echo '<tr class="'. $entry->EmailAddress.'">';
echo '<td>'. $entry->EmailAddress.'</td>';
echo '<td></td><td>';
// If the subscriber is in our unsubscriber array, output the email again
if(in_array($entry->EmailAddress, $unsubs)) {
echo $entry->EmailAddress;
}
echo '</td><td></td>';
echo '<td></td>';
echo '<td></td>';
echo '</tr>';
}
如果找到空的<td></td>
,我想放置以下内容:
$getlists = new CS_REST_Campaigns($_POST['campaign_id'], $auth);
$getlistsresult = $wrap->get_lists_and_segments();
foreach($getlistsresult->response->Lists as $list) {
//echo $list->ListID;
}
$wrapcount = new CS_REST_Subscribers($list->ListID, $auth);
$resultcount = $wrapcount->get_history($entry->EmailAddress);
foreach($resultcount->response as $entrycount) {
$counts = array();
foreach($entrycount->Actions as $actions) {
if(!isset($counts[$actions->Event])) {
$counts[$actions->Event] = 0;
}
++$counts[$actions->Event];
}
echo '<td>';
if ($counts['Click']){echo $counts['Click'];}
echo '</td>';
echo '<td>';
if ($counts['Bounce']){echo 'Yes';}
echo '</td>';
echo '<td>';
if ($counts['Open']){echo $counts['Open'];}
echo '</td>';
}
这在一定程度上起作用,但页面的加载时间显着增加。我认为老实说我的代码需要整理。关于如何提高速度的任何建议?
答案 0 :(得分:1)
在我的代码中没有太多我可以看到明显没有优化的东西,有些函数调用我不知道,来自你的CS_REST类,但是我们不知道这些函数是做什么的,或者它们是否会很慢或优化。
有了这些信息,我能看到的唯一可以帮助你的是使用SplFixedArray类。如果您的数组中有大量条目并对它们执行大量操作,这将非常有用。基本上,它们与真实数组类似,因为它们的索引总是一个整数,并且它们具有固定的大小,这反过来使它们更快地使用。