array_diff_uassoc

(PHP 5)

array_diff_uassoc --  ユーザが指定したコールバック関数を利用し、 追加された添字の確認を含めて配列の差を計算する

説明

array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

array1 のキーを array2 のキーと比較し、その差を返します。 この関数は array_diff() に似ていますが、 配列のキーを用いて比較するという点が異なります。

array_diff_assoc() とは異なり、 内部関数ではなくユーザが指定したコールバック関数を用いて添字を比較します。

パラメータ

array1

比較元の配列。

array2

比較する対象となる配列。

...

さらに比較する対象となる配列。

key_compare_func

使用するコールバック関数。 この関数は、1 つめの引数が 2 つめより小さい / 等しい / 大きい 場合にそれぞれ 負の数 / ゼロ / 正の数 を返す必要があります。

返り値

array1 の要素のうち、 その他の配列のいずれにも含まれないものだけを残した配列を返します。

例 1. array_diff_uassoc() の例

"a" => "green" の組み合わせが両方の配列に存在し、 関数の出力には存在しないことが確認できます。 これとは異なり、0 => "red" は出力されています。 なぜなら 2 つめの引数の "red" は、キーが 1 だからです。

<?php
function key_compare_func($a, $b)
{
    if (
$a === $b) {
        return
0;
    }
    return (
$a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

上の例の出力は以下となります。

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

2 つのインデックスが等しいかどうかは、 ユーザが指定したコールバック関数で調べます。

注意

注意: この関数は n 次元配列の一つの次元しかチェックしません。 もちろん、array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); のようにすることでより深い次元でのチェックもできます。

参考

array_diff()
array_diff_assoc()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_intersect()
array_intersect_assoc()
array_uintersect()
array_uintersect_assoc()
array_uintersect_uassoc()



東京デリヘル 池袋デリヘル 新宿デリヘル 渋谷デリヘル 品川デリヘル

鶯谷デリヘル 大塚デリヘル 立川デリヘル 町田デリヘル 横浜デリヘル 埼玉デリヘル

千葉デリヘル 大阪デリヘル 神戸デリヘル 京都デリヘル 名古屋デリヘル デリヘル

アダルトレンタルサーバー アダルトレンタルサーバー 表札 断熱塗料 UGUISU

大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム 老人ホーム