Php 如何对谷歌生成的关键词创意结果进行排序?

Php 如何对谷歌生成的关键词创意结果进行排序?,php,google-ads-api,Php,Google Ads Api,尽管如此,我还是成功地实现了Google Keyword Planner API,通过下面的链接在PHP中生成关键字创意 有人知道用avgmonthlysearch对结果进行排序的最快方法吗 // Iterate over the results and print its detail. foreach ($response->iterateAllElements() as $result) { /** @var GenerateKeywordIdeaResult $resul

尽管如此,我还是成功地实现了Google Keyword Planner API,通过下面的链接在PHP中生成关键字创意

有人知道用avgmonthlysearch对结果进行排序的最快方法吗

// Iterate over the results and print its detail.
foreach ($response->iterateAllElements() as $result) {
    /** @var GenerateKeywordIdeaResult $result */
    // Note that the competition printed below is enum value.
    // For example, a value of 2 will be returned when the competition is 'LOW'.
    // A mapping of enum names to values can be found at KeywordPlanCompetitionLevel.php.
    printf(
        "Keyword idea text '%s' has %d average monthly searches and competition as %d.%s",
        $result->getText(),
        is_null($result->getKeywordIdeaMetrics()) ?
            0 : $result->getKeywordIdeaMetrics()->getAvgMonthlySearches(),
        is_null($result->getKeywordIdeaMetrics()) ?
            0 : $result->getKeywordIdeaMetrics()->getCompetition(),
        PHP_EOL
    );
}

谢谢

您可以实现一个功能,可以比较对象的两个实例并使用:

函数cmp($a,$b){
返回$a->getKeywordIdeaMetrics()->getAvgMonthlySearches()-$b->getKeywordIdeaMetrics()->getAvgMonthlySearches();
}
$list=iterator_to_数组($response->->->iterateAllements());
usort($list,“cmp”);
//$list将是从此处开始使用的排序数组。。。
请参阅更多:


感谢您的及时回复。我在迭代之前将您剪成这样:函数cmp($a,$b){return$a->getKeywordIdeaMetrics()->getavgmonthlysearch()-$b->getKeywordIdeaMetrics()->>getavgmonthlysearch();}usort($response,“cmp”);foreach($response->iterateAllements()as$result){……我得到一条警告:warning:usort()期望参数1是数组,对象在/Applications/MAMP/htdocs中给出,正如我期望的那样,API中的响应变量是数组,不是吗?请帮助并感谢您。@webmastx您应该通过转储变量来验证响应是什么。然后您将看到它是哪个类的实例,并可以找到它的文档。您正在处理h是一个迭代器,需要使用
iterator\u to\u array
转换为数组才能使用
usort
。如果您想尝试,我更新了答案的代码。请注意,这不会给您带来最佳性能。要获得最佳性能,您应该直接在查询中对结果排序。请参阅
排序依据
条款