string(2) "24" ["FromMid"] => string(3) "157" [&q"/> string(2) "24" ["FromMid"] => string(3) "157" [&q">

PHP配列の破棄

WBOY
WBOYオリジナル
2016-06-13 13:11:23964ブラウズ

PHP 配列処理
array(4) {
[0] => array(3) {
["Id"] => string(2) "24"
["FromMid" ] = > 文字列(3) "157"
["ToMid"] => 文字列(3) "157"
}
[1] => 配列(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"] => 文字列(2) "25"
}
[3] => 配列(3) {
["Id"] = > 文字列(1) "1"
["FromMid"] => 文字列(2) "25"
["ToMid"] => 文字列(3) "157"
}
}

["FromMid"]==["ToMid"]&&["ToMid"]==["FromMid"] を処理して 1 つだけ残しておきたいです。
結果は次のようになります。
array(4) {
[0] => array(3) {
["Id"] => string(2) "24"
["FromMid"] = > string(3) "157"
["ToMid"] => string(3) "157"
}
[1] => array(3) {
[" Id"] =>文字列(2) "22"
["FromMid"] => 文字列(3) "157"
["ToMid"] => 文字列(3) "176"
}
[2] => 配列(3) {
["Id"] => 文字列(1) "4"
["FromMid"] => 文字列(3) "157"
["ToMid "] => string(2) "25"
}
}

-----解決策---- ---------- ------

PHP コード

<?php
$input = array("赤", "緑", "青", "黄");
array_splice($input, 2);
// $input は array("red", "green") になります

$input = array("赤", "緑", "青", "黄");
array_splice($input, 1, -1);
// $input は array("red", " yellow") になります

$input = array("赤", "緑", "青", "黄");
array_splice($input, 1, count($input), "オレンジ");
// $input は array("red", "orange") になります

$input = array("赤", "緑", "青", "黄");
array_splice($input, -1, 1, array("black", "maroon"));
// $input は array("red", "green",
// "青"、"黒"、"栗色")

$input = array("赤", "緑", "青", "黄");
array_splice($input, 3, 0, "紫");
// $input は array("red", "green",
// "青"、"紫"、"黄色");
?>
<br /><font color='#e78608'>------解決策------------------</font><br />
<dl class='code'>PHP コード<pre class="brush:php;toolbar:false">

$data = 配列(
    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 = 配列();
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]);
    } それ以外 {
        $markList[$posi] = $markList[$anti] = 1;
    }
}
echo '<pre class="brush:php;toolbar:false">';print_r($data);

/**出:
配列
(
    [0] =>配列
        (
            [ID] => 24
            [FromMid] => 157
            [ToMid] => 157
        )

    [1] =>配列
        (
            [ID] => 22
            [FromMid] => 157
            [ToMid] => 176
        )

    [2] =>配列
        (
            [ID] => 4
            [FromMid] => 157
            [ToMid] => 25
        )*/
 <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。