PHP array Processing
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"
}
}
I would like to take ["Frommid"]==["Tomid"]&&["Tomid"]==["Frommid"] to dispose of only one bar left
The result should be
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"
}
}
------Solution--------------------
PHP Code
------Solution--------------------
PHP Code
$data = Array ("id" = "+", "frommid" = "157", "Tomid" and "157"), Array ("id" = "all", "Frommid" = "157", "Tomid" and "176"), Array ("id" = "4", "frommid" = "157", "tomid" = "+"), Array ("ID" => ; "1", "Frommid" "+", "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 ';p Rint_r ($data);/** output: Array ([0] = = Array ([Id] + 24 [Frommid] = 157 [Tomid] = 157) [1] = = Array ([Id] = 22 [Frommid] = 157 [Tomid] = 176) [2] = = Array ([Id] = 4 [Frommid] = 157 [Tomid] = +) */