二维数组比较的问题?

$data = [
    ['foo' => 'bar', 'x' => 'foo'],
    ['foo' => 'bar1', 'x' => 'foo1'],
    ['foo' => 'bar', 'x' => 'foo2']
];

我需要把这个数组中的foo重复的数组删除,只保留下来一条就行。怎么做?

$data = [
    ['foo' => 'bar', 'x' => 'foo'],
    ['foo' => 'bar1', 'x' => 'foo1'],
];
阅读 1.8k
2 个回答
//$arr = array_merge($data1,$data2);
//合并需要合并的俩个数组
  $key = 'foo';//去重条件
  $tmp_arr = array();//声明数组
  //var_dump($data);
 foreach($data as $k => $v)
 {
  if(in_array($v[$key], $tmp_arr))
//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
  {
   unset($data[$k]);
   //删除掉数组($arr)里相同ID的数组
  }
 else {
   $tmp_arr[] = $v[$key];
   //记录已有的id
  }
 }
var_dump($data);
        $tmp  = [];
        foreach ($data as $key => $datum) {
            if (in_array($datum['foo'], $tmp)) {
                unset($data[$key]);
                continue;
            }
            $tmp[] = $datum['foo'];
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题