首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除多维数组中的重复数据(关联数组)

删除多维数组中的重复数据(关联数组)
EN

Stack Overflow用户
提问于 2017-05-24 20:55:45
回答 2查看 53关注 0票数 0

我有三个键指向类型数组的值,在这些数组值中我有重复的值。我怎么才能把它们移走?

代码语言:javascript
复制
array(3) {
["rock"]=>
array(4) {
[0]=>
array(9) {
  ["id"]=>
  string(1) "1"
  ["title"]=>
  string(15) "Teleman Tickets"
  ["location"]=>
  string(20) "Concorde 2, Brighton"
  ["event_date"]=>
  string(10) "2017-02-20"
  ["event_time"]=>
  string(8) "20:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "50.817321799999990"
  ["geo_long"]=>
  string(17) "-0.12304610000001"
  ["tags"]=>
  string(30) "rock,alternative,indie"
}
[1]=>
array(9) {
  ["id"]=>
  string(1) "4"
  ["title"]=>
  string(9) "Blink-182"
  ["location"]=>
  string(25) "Motorpoint Arena, Cardiff"
  ["event_date"]=>
  string(10) "2017-07-03"
  ["event_time"]=>
  string(8) "18:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "51.478937400000010"
  ["geo_long"]=>
  string(17) "-3.17172289999996"
  ["tags"]=>
  string(14) "rock,metal"
}
[2]=>
array(9) {
  ["id"]=>
  string(1) "8"
  ["title"]=>
  string(5) "Ghost"
  ["location"]=>
  string(29) "O2 Forum Kentish Town, London"
  ["event_date"]=>
  string(10) "2017-03-26"
  ["event_time"]=>
  string(8) "19:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "51.552197000000010"
  ["geo_long"]=>
  string(17) "-0.14196900000002"
  ["tags"]=>
  string(30) "rock,alternative,indie"
}
[3]=>
array(9) {
  ["id"]=>
  string(2) "10"
  ["title"]=>
  string(11) "Courteeners"
  ["location"]=>
  string(39) "Emirates Old Trafford, Lancashire C.C.C"
  ["event_date"]=>
  string(10) "2017-05-27"
  ["event_time"]=>
  string(8) "16:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "53.456428000000000"
  ["geo_long"]=>
  string(17) "-2.28679699999998"
  ["tags"]=>
  string(30) "rock,alternative,indie"
 }
}
["alternative"]=>
array(4) {
[0]=>
array(9) {
  ["id"]=>
  string(1) "1"
  ["title"]=>
  string(15) "Teleman Tickets"
  ["location"]=>
  string(20) "Concorde 2, Brighton"
  ["event_date"]=>
  string(10) "2017-02-20"
  ["event_time"]=>
  string(8) "20:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "50.817321799999990"
  ["geo_long"]=>
  string(17) "-0.12304610000001"
  ["tags"]=>
  string(30) "rock,alternative,indie"
}
[1]=>
array(9) {
  ["id"]=>
  string(1) "6"
  ["title"]=>
  string(6) "Sum 41"
  ["location"]=>
  string(23) "O2 Academy Leeds, Leeds"
  ["event_date"]=>
  string(10) "2017-02-26"
  ["event_time"]=>
  string(8) "19:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "53.802188400000000"
  ["geo_long"]=>
  string(17) "-1.54713770000001"
  ["tags"]=>
  string(21) "alternative,indie"
}
[2]=>
array(9) {
  ["id"]=>
  string(1) "8"
  ["title"]=>
  string(5) "Ghost"
  ["location"]=>
  string(29) "O2 Forum Kentish Town, London"
  ["event_date"]=>
  string(10) "2017-03-26"
  ["event_time"]=>
  string(8) "19:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "51.552197000000010"
  ["geo_long"]=>
  string(17) "-0.14196900000002"
  ["tags"]=>
  string(30) "rock,alternative,indie"
}
[3]=>
array(9) {
  ["id"]=>
  string(2) "10"
  ["title"]=>
  string(11) "Courteeners"
  ["location"]=>
  string(39) "Emirates Old Trafford, Lancashire C.C.C"
  ["event_date"]=>
  string(10) "2017-05-27"
  ["event_time"]=>
  string(8) "16:00:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "53.456428000000000"
  ["geo_long"]=>
  string(17) "-2.28679699999998"
  ["tags"]=>
  string(30) "rock,alternative,indie"
 }
}
["sax"]=>
array(1) {
[0]=>
array(9) {
  ["id"]=>
  string(1) "3"
  ["title"]=>
  string(9) "Take That"
  ["location"]=>
  string(22) "The SSE Hydro, Glasgow"
  ["event_date"]=>
  string(10) "2017-05-11"
  ["event_time"]=>
  string(8) "18:30:00"
  ["url"]=>
  string(1) "0"
  ["geo_lat"]=>
  string(18) "55.860156000000000"
  ["geo_long"]=>
  string(17) "-4.28525800000000"
  ["tags"]=>
  string(24) "pop,boy-band,sax"
 }
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-24 21:09:10

我假设如果两个乐队有相同的“id”,那么它们是相同的

代码语言:javascript
复制
$unique_bands = array();
// if the master array is called bands    
foreach($bands as $genre){
    foreach($genre as $band){
        $unqiue_bands[$band['id']] = $band;
     }
}

也许将$unique_bands = array_values(array_filter($unique_bands));放在末尾以重新索引数组

票数 2
EN

Stack Overflow用户

发布于 2017-05-24 21:01:37

你在正式文件上有个解决方案..。一个人做了一个简单的功能来做你想做的事。

示例数组:

代码语言:javascript
复制
<?php 
$details = array( 
    0 => array("id"=>"1", "name"=>"Mike",    "num"=>"9876543210"), 
    1 => array("id"=>"2", "name"=>"Carissa", "num"=>"08548596258"), 
    2 => array("id"=>"1", "name"=>"Mathew",  "num"=>"784581254"), 
); 
?>

功能:

代码语言:javascript
复制
<?php 
function unique_multidim_array($array, $key) { 
    $temp_array = array(); 
    $i = 0; 
    $key_array = array(); 

    foreach($array as $val) { 
        if (!in_array($val[$key], $key_array)) { 
            $key_array[$i] = $val[$key]; 
            $temp_array[$i] = $val; 
        } 
        $i++; 
    } 
    return $temp_array; 
} 
?> 

您必须修复它才能使用for数组维度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44168298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档