首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php数组处置

2012-10-09 
php数组处理array(4) {[0] array(3) {[Id] string(2) 24[FromMid] string(3) 157[ToMid

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


[解决办法]
<?php
//假定你的数组名为$arr
function ar(){
$arr = 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"
)
);
foreach($arr as $c=>$v){
if($v['FromMid']==$v['ToMid']){
array_splice($arr,$c,1);
}
}
return $arr;
}
var_dump(ar());
?>

热点排行