array(4) {
[0] => array(3) {
["Id"] => string(2) "24"
["FromMid"] => string(3) "157"
["ToMid"] => string(3) "157"
}
[1] => array(3) {
["Id"] => string(2) "22"
["FromMid"] => string(3) "157"
["ToMid"] => string(3) "176"
}
[2] => array(3) {
["Id"] => string(1) "4"
["FromMid"] => string(3) "157"
["ToMid"] => string(2) "25"
}
[3] => array(3) {
["Id"] => string(1) "1"
["FromMid"] => string(2) "25"
["ToMid"] => string(3) "157"
}
}
我想把["FromMid"]==["ToMid"]&&["ToMid"]==["FromMid"]处理掉 只留一条
得出的结果应该是
array(4) {
[0] => array(3) {
["Id"] => string(2) "24"
["FromMid"] => string(3) "157"
["ToMid"] => string(3) "157"
}
[1] => array(3) {
["Id"] => string(2) "22"
["FromMid"] => string(3) "157"
["ToMid"] => string(3) "176"
}
[2] => array(3) {
["Id"] => string(1) "4"
["FromMid"] => string(3) "157"
["ToMid"] => string(2) "25"
}
}
------解决方案--------------------
- PHP code
------解决方案--------------------
- PHP code
$data = array(
array("Id" => "24", "FromMid" => "157", "ToMid" => "157"),
array("Id" => "22", "FromMid" => "157", "ToMid" => "176"),
array("Id" => "4", "FromMid" => "157", "ToMid" => "25"),
array("Id" => "1", "FromMid" => "25", "ToMid" => "157")
);
$markList = array();
foreach ($data as $key => $val) {
$posi = md5($val['FromMid'] . $val['ToMid']);
$anti = md5($val['ToMid'] . $val['FromMid']);
if (isset($markList[$posi]) || isset($markList[$anti])) {
unset($data[$key]);
} else {
$markList[$posi] = $markList[$anti] = 1;
}
}
echo '';print_r($data);
/**
输出:
Array
(
[0] => Array
(
[Id] => 24
[FromMid] => 157
[ToMid] => 157
)
[1] => Array
(
[Id] => 22
[FromMid] => 157
[ToMid] => 176
)
[2] => Array
(
[Id] => 4
[FromMid] => 157
[ToMid] => 25
)
*/