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
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
// "blue", "black", "maroon")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
// "blue", "purple", "yellow");
?>
------解决方案--------------------
- 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 '<pre>';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
)
*/