php数组处理
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 '';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 ) */