慕桂英3389331
这就是我将如何解决它,这只是一个循环和最后的 usort 以根据 newRank 设置顺序。另外我假设重复的只是网址。输出链接在这里:http : //codepad.org/ClubESQ6<?php//google$res1 = array();$res1[0] = array('id'=>null, 'title'=>'Owl - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl', 'currentRank'=>0, 'newRank'=>null);$res1[1] = array('id'=>null, 'title'=>'Owl (Marvel Comics) - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl_(Marvel_Comics)', 'currentRank'=>1, 'newRank'=>null);$res1[2] = array('id'=>null, 'title'=>'Owl Pharaoh - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl_Pharaoh', 'currentRank'=>2, 'newRank'=>null);$res1[3] = array('id'=>null, 'title'=>'Owl City - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl_City', 'currentRank'=>3, 'newRank'=>null);$res1[4] = array('id'=>null, 'title'=>'Owl (Nguyen Hung Cuong) | Happy Folding', 'urlLink'=>'https://www.happyfolding.com/gallery-nguyen-owl', 'currentRank'=>1, 'newRank'=>null);//bing$res2 = array();$res2[0] = array('id'=>null, 'title'=>'OWL/TV - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/OWL/TV', 'currentRank'=>0, 'newRank'=>null);$res2[1] = array('id'=>null, 'title'=>'Owl (Nguyen Hung Cuong) | Happy Folding', 'urlLink'=>'https://www.happyfolding.com/gallery-nguyen-owl', 'currentRank'=>1, 'newRank'=>null);$res2[2] = array('id'=>null, 'title'=>'Owl Pharaoh - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl_Pharaoh', 'currentRank'=>2, 'newRank'=>null);$res2[3] = array('id'=>null, 'title'=>'Owl "Nightwatch" (Kay Kraschewski a.k.a. "Akugami ...', 'urlLink'=>'https://www.happyfolding.com/instructions-kraschewski-nightwatch', 'currentRank'=>3, 'newRank'=>null);$res2[4] = array('id'=>null, 'title'=>'Owl - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl', 'currentRank'=>0, 'newRank'=>null);//duckduckgo$res3 = array();$res3[0] = array('id'=>null, 'title'=>'OWL // Purdue Writing Lab', 'urlLink'=>'https://owl.purdue.edu', 'currentRank'=>0, 'newRank'=>null);$res3[1] = array('id'=>null, 'title'=>'Owl - Wikipedia', 'urlLink'=>'https://en.wikipedia.org/wiki/Owl', 'currentRank'=>1, 'newRank'=>null);$res3[2] = array('id'=>null, 'title'=>'Owl | bird | Britannica.com', 'urlLink'=>'https://www.britannica.com/animal/owl', 'currentRank'=>2, 'newRank'=>null);$res3[3] = array('id'=>null, 'title'=>'The Owl Pages - Information about Owls', 'urlLink'=>'https://www.owlpages.com/owls/', 'currentRank'=>3, 'newRank'=>null);$results = mergeResults($res1, $res2, $res3);echo '<pre>', print_r($results, true), '</pre>';function mergeResults() { $results = array(); //array for our final resulsts $numargs = func_num_args(); $arg_list = func_get_args(); for ($i = 0; $i < $numargs; $i++) { $resultSet = $arg_list[$i]; foreach($resultSet as $rs) { //is dupe, decrement rank if (isset($results[$rs['urlLink']])) { $currentRank = $results[$rs['urlLink']]['newRank']; $newRank = $currentRank - 1; $results[$rs['urlLink']]['newRank'] = $newRank; } else { $rs['newRank'] = $rs['currentRank']; $results[$rs['urlLink']] = $rs; } } } usort($results, "sortByRank"); return $results;}function sortByRank($a, $b) { if($a["newRank"] == $b["newRank"]) { return 0; } return ($a["newRank"] < $b["newRank"]) ? -1 : 1;}