php数组-删除重复和相应的值

php数组-删除重复和相应的值,php,multidimensional-array,Php,Multidimensional Array,我有一个2d数组,其中包含“title”和“url”(两个字符串),如下所示。是否可以检查“url”中的重复项,如果存在,也可以删除相应的“标题” array 0 => array 'title' => string 'China - Wikipedia, the free encyclopedia' 'url' => string 'http://en.wikipedia.org/wiki/China'

我有一个2d数组,其中包含“title”和“url”(两个字符串),如下所示。是否可以检查“url”中的重复项,如果存在,也可以删除相应的“标题”

array
      0 => 
        array
          'title' => string 'China - Wikipedia, the free encyclopedia'
          'url' => string 'http://en.wikipedia.org/wiki/China'
      1 => 
        array
          'title' => string 'China'
          'url' => string 'http://www.state.gov/r/pa/ei/bgn/18902.htm'
      2 => 
        array
          'title' => string 'China | World news | The Guardian'
          'url' => string 'http://www.guardian.co.uk/world/china'
      3 => 
        array
          'title' => string 'China Travel Information and Travel Guide - Lonely Planet'
          'url' => string 'http://www.lonelyplanet.com/china'
      4 => 
        array
          'title' => string 'ChinaToday.com'
          'url' => string 'http://www.chinatoday.com/'

试试这个功能,它可以完成这项工作

function super_unique($array,$key)
{
   $temp_array = array();

   foreach ($array as &$v) {

       if (!isset($temp_array[$v[$key]]))

       $temp_array[$v[$key]] =& $v;

   }
   $array = array_values($temp_array);
   return $array;
}

$yourearray = super_unique($arr,'url');

试着这样做:

$originals = array();

foreach($array as $key => $value) {
   if(!isset($originals[$value['url']])) {
      $originals[$value['url']] = true;
   }
   else {
      // exists already, delete entry
      unset($array[$key]);
   }
}

或者,如果您对使用url的最后一个值感到满意,您可以

foreach($array as $subarray) {
    $output[$subarray['url']] = $subarray['title'];
}

哪个标题?第一个?最后一个?全部的你面临的问题是什么?唯一正确的答案是“是的,这是可能的”。是的,这是可能的,但我建议设置一个小类,将“title”和“url”作为其属性,使用一个简单的构造函数填充它们,然后使用一维数组。谢谢大家的帮助。你们真快!