使用下面的示例,如何删除符合以下条件的所有重复顶级数组元素:
修改其他信息:
开始数组:
Array
(
[0] => Array
(
[0] => 2018-03-03 07:43:15
[1] => TicketID_25500
)
[1] => Array
(
[0] => 2018-03-03 08:00:00 //matching timestamp
[1] => TicketID_25500
)
[2] => Array
(
[0] => 2018-03-03 08:00:00 //matching timestamp
[1] => Ticket_Reply_25500
)
}
期望的结果:
Array
(
[0] => Array
(
[0] => 2018-03-03 07:43:15
[1] => TicketID_25500
)
[1] => Array
(
[0] => 2018-03-03 08:00:00
[1] => Ticket_Reply_25500
)
}
答案 0 :(得分:2)
您可以使用SORT_REGULAR
选项更多文档HERE关于array_uniqy()
<?php
$result = array(
0=>array(0=>'2018-03-03 07:43:15',1=>'TicketID_25500'),
1=>array(0=>'2018-03-03 08:00:00',1=>'TicketID_25500'),
2=>array(0=>'2018-03-03 08:00:00',1=>'Ticket_Reply_25500'),
);
$details = unique_multidim_array($result ,'1');
print_r($details);
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;
}
O / P是:
Array
(
[0] => Array
(
[0] => 2018-03-03 07:43:15
[1] => TicketID_25500
)
[2] => Array
(
[0] => 2018-03-03 08:00:00
[1] => Ticket_Reply_25500
)
)
<强>被修改强>:
`unique_multidim_array($result ,'1');`
这个函数传递了两个参数。一个是数组,另一个是唯一值的关键。
检查数组键值的说明是否已经存在
if(!in_array($val[$key], $key_array))
如果该值和键不在数组中将返回数组,则它会弹出如下:
$temp_array[$i] = $val;
return $temp_array;
为方便起见,您可以更改Key
,例如'数字键'或'字符串键'
例如unique_multidim_array($result ,'a');
或unique_multidim_array($result ,'b');
。
答案 1 :(得分:1)
希望这可以帮到你。
<?php
$a = array(
array("2018-03-03 07:43:15","TicketID_25500"),
array("2018-03-03 08:00:00","TicketID_25500"),
array("2018-03-03 08:00:00","Ticket_Reply_25500"),
array("2018-03-03 08:03:00","Ticket_Reply_25500"),
);
function array_multi_unique($multiArray){
$all = array_column($multiArray,1); // pass 0 for timestamp
$unique = array_values(array_unique($all));
foreach($unique as $key){
$i = 0;
foreach($multiArray as $k => $v){
if(in_array($key,$v)){
if($i != 0){
unset($multiArray[$k]);
}
$i++;
}
}
}
$multiArray = array_values($multiArray);
return $multiArray;
}
$unique = array_multi_unique($a);
print_r($unique);
答案 2 :(得分:0)
我认为你需要