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"
  }
}

解决方案 »

  1.   

    使用array_splice来移除数组中的内容~
      

  2.   


    <?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");
    ?> 
      

  3.   

    可以考虑使用array_slice()函数.
      

  4.   

    [User:root Time:07:04:33 Path:/home/liangdong/php]$ php arr.php 
    Array
    (
        [0] => Array
            (
                [id] => 24
                [FromMid] => 157
                [ToMid] => 157
            )    [1] => Array
            (
                [id] => 1
                [FromMid] => 157
                [ToMid] => 25
            ))
    [User:root Time:07:04:34 Path:/home/liangdong/php]$ cat arr.php 
    <?php
    $data = array(
                            array(
                                    "id" => "24",
                                    "FromMid" => "157",
                                    "ToMid" => "157"
                            ),
                            array(
                                    "id" => "4",
                                    "FromMid" => "157",
                                    "ToMid" => "25"
                            ),
                            array(
                                    "id" => "1",
                                    "FromMid" => "157",
                                    "ToMid" => "25"
                            )
                    );
    function unique_data($data) {
            $temp_arr = array();
            foreach ($data as $value) {
                    $key = $value["FromMid"] < $value["ToMid"] ? 
                                            ($value["FromMid"] . "," . $value["ToMid"]) :
                                            ($value["ToMid"] . "," . $value["FromMid"]);
                    $temp_arr[$key] = $value;
            }
            return array_values($temp_arr);
    }
    $result = unique_data($data);
    print_r($result);
    ?>
      

  5.   


    $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")
    );$List = array();
    foreach ($data as $key => $val) {
        $posi = md5($val['FromMid'] . $val['ToMid']);
        $anti = md5($val['ToMid'] . $val['FromMid']);
        if (isset($List[$posi]) || isset($List[$anti])) {
            unset($data[$key]);
        } else {
            $List[$posi] = $List[$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
            )
    */
      

  6.   

    <?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());
    ?>