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 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 )*/