Search
  1. array_diff〔配列の差分を求める〕
  2. array_diff_assoc〔添字の確認を含めて配列の差分を求める〕
  3. array_diff_key PHP5~〔キーを基準にした配列の差分を求める〕
  4. array_diff_uassoc PHP5~〔ユーザーが指定したコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める〕
  5. array_diff_ukey PHP5~〔ユーザーが指定したコールバック関数を用いて、キーを基準にした配列の差分を求める〕
  6. array_intersect〔配列の共通項を求める〕
  7. array_intersect_assoc〔添字の確認を含めて配列の共通項を求める〕
  8. array_intersect_key PHP5~〔キーを基準にして配列の共通項を求める〕
  9. array_intersect_uassoc PHP5~〔追加された添字の確認も含め、コールバック関数を用いて配列の共通項を確認する〕
  10. array_intersect_ukey PHP5~〔ユーザーが指定したコールバック関数を用いて、キーを基準にした配列の共通項を求める〕
  11. array_udiff PHP5~〔データの比較にコールバック関数を用いて、配列の差分を求める〕
  12. array_udiff_assoc PHP5~〔データの比較にコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める〕
  13. array_udiff_uassoc PHP5~〔データと添字の比較にコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める〕
  14. array_uintersect PHP5~〔データの比較にコールバック関数を用いて、配列の共通項を求める〕
  15. array_uintersect_assoc PHP5~〔データの比較にコールバック関数を用いて、追加された添字の確認も含めて配列の共通項を求める〕
  16. array_uintersect_uassoc PHP5~〔データと添字の比較にコールバック関数を用いて、追加された添字の確認も含めて配列の共通項を求める〕

array_diff
配列の差分を求める

unknown

array array_diff ( array $比較配列1, array $比較配列2[, array ...] )

他の引数のいずれにも存在しない比較配列1の値を全て有する配列を返します。 キーと値の関係は維持されます。

<?
$fruit = array("apple","banana","grape","remon");
$juice = array("apple","orange","grape");

//配列juiceに存在しない、配列fruitの値を返す
$diff array_diff($fruit$juice);

//差分
while(list($key$val) = each($diff)){
 echo $val "\t";
}
//banana remon
?>

array_diff_assoc
添字の確認を含めて配列の差分を求める

unknown

array array_diff_assoc ( array $比較配列1, array $比較配列2[, array ...] )

比較配列1から、他の引数の配列の中に無い全ての値を含む配列を返します。 array_diff()関数と異なり、キーが比較に使用されます。

<?
$ary1 = array("1"=>"apple","2"=>"banana","3"=>"grape");
$ary2 = array("a"=>"apple","b"=>"banana","orange");
$unique array_diff_assoc($ary1$ary2);
print_r($unique); //Array ( [1] => apple [2] => banana [3] => grape )
?>

array_diff_key PHP5~
キーを基準にした配列の差分を求める

unknown

array array_diff_key ( array $比較配列1, array $比較配列2[, array ...] )

比較配列1から、他の引数の配列の中に無い全ての値を含む配列を返します。 キーと値の関係は維持されます。 array_diff()関数と異なり値ではなく、キーが比較に使用されます。

<?
if(!function_exists('array_diff_key')){
    /* PHP v5.1.0未満 */
    function array_diff_key() {
        $argCount  func_num_args();
        $diff_arg_prefix 'diffArg';
        $diff_arg_names = array();
        for ($i=0$i $argCount$i++) {
            $diff_arg_names[$i] = 'diffArg'.$i;
            $$diff_arg_names[$i] = array_keys((array)func_get_arg($i));
        }
        $diffArrString '';
        if (!empty($diff_arg_names)){
            $diffArrString =  '$'.implode(', $'$diff_arg_names);
        }
        eval("\$result = array_diff(".$diffArrString.");");
        return $result;
    }
}

$array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'  => 8);

var_dump(array_diff_key($array1$array2));
// array(2) { ["red"]=>  int(2) ["purple"]=>  int(4) } 
?>

array_diff_uassoc PHP5~
ユーザーが指定したコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める

unknown

array array_diff_uassoc ( array $比較配列1, array $比較配列2[, array ..., callback $コールバック関数] )

比較配列1から、他の引数の配列の中に無い全ての値を含む配列を返します。 array_diff()関数と異なり、値ではなくキーが比較に使用されます。

比較は、ユーザーが指定したコールバック関数を使用して行われます。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、 それぞれ負の値、0、正の値を返す必要があります。

<?
if (function_exists('array_diff_uassoc')) {
    function key_compare_func($a$b) {
        if ($a === $b) return 0;
        return ($a $b) ?  : -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)
}
?>

array_diff_ukey PHP5~
ユーザーが指定したコールバック関数を用いて、キーを基準にした配列の差分を求める

unknown

array array_diff_ukey ( array $比較配列1, array $比較配列2[, array ..., callback $コールバック関数] )

比較配列1から他の引数の配列の中に無い全ての値を含む配列を返します。 キーと値の関係は維持されます。 array_diff()関数と異なり、値ではなくキーが比較に使用されます。

比較は、ユーザーが指定したコールバック関数を使用して行われます。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
if (function_exists('array_diff_ukey')) {
    function key_compare_func($key1$key2) {
        if ($key1 == $key2) return 0;
        else if ($key1 $key2) return 1;
        else return -1;
    }
    $array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
    $array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'  => 8);
    var_dump(array_diff_ukey($array1$array2'key_compare_func'));
    //array(2) { ["red"]=>  int(2) ["purple"]=>  int(4) }
}
?>

array_intersect
配列の共通項を求める

unknown

array array_intersect ( array $比較配列1, array $比較配列2[, ...] )

他の全ての引数に存在する比較配列1の全ての値を含む配列を返します。 キーと値の関係は維持されます。

<?
$ary1 = array("1"=>"apple","2"=>"banana","3"=>"grape");
$ary2 = array("a"=>"apple","b"=>"banana","c"=>"grape");
$unique array_intersect($ary1$ary2);
print_r($unique); //Array ( [1] => apple [2] => banana [3] => grape )
?>

array_intersect_assoc
添字の確認を含めて配列の共通項を求める

unknown

array array_intersect_assoc ( array $比較配列1, array $比較配列2[, array ...] )

他の全ての引数に存在する比較配列1の全ての値を含む配列を返します。 array_intersect()関数と異なり、キーが比較に使われます。

<?
$ary1 = array("1"=>"apple","2"=>"banana","grape");
$ary2 = array("a"=>"apple","b"=>"banana","3"=>"grape");
$unique array_intersect_assoc($ary1$ary2);
print_r($unique); //Array ( [3] => grape )
?>

array_intersect_key PHP5~
キーを基準にして配列の共通項を求める

unknown

array array_intersect_key ( array $比較配列1, array $比較配列2[, array $...] )

他の全ての引数に存在する比較配列1の全ての値を含む配列を返します。

<?
if (!function_exists('array_intersect_key')) {
    function array_intersect_key ($isec$arr2) {
        $argc func_num_args();
        for ($i=1$i $argc$i++) {
            $arr func_get_arg($i);
            foreach ($isec as $k => $v) {
                if (!isset($arr[$k])) unset($isec[$k]);
            }
            return $isec;
        }
   }
}
?>
<?
$array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'  => 8);
var_dump(array_intersect_key($array1$array2));
//array(2) { ["blue"]=>  int(1) ["green"]=>  int(3) }
?>

array_intersect_uassoc PHP5~
追加された添字の確認も含め、コールバック関数を用いて配列の共通項を確認する

unknown

array array_intersect_uassoc ( array $比較配列1, array $比較配列2[, array …, calllback $コールバック関数] )

他の全ての引数に存在する比較配列1の全ての値を含む配列を返します。 array_intersect()関数と異なり、キーが比較に使われます。

比較は、ユーザー指定のコールバック関数を使って行われます。 このコールバック関数は第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
if (function_exists('array_intersect_uassoc')) {
    $array1 = array("a" => "green""b" => "brown""c" => "blue""red");
    $array2 = array("a" => "GREEN""B" => "brown""yellow""red");
    print_r(array_intersect_uassoc($array1$array2"strcasecmp"));
    // Array([b] => brown)
}
?>

array_intersect_ukey PHP5~
ユーザーが指定したコールバック関数を用いて、キーを基準にした配列の共通項を求める

unknown

array array_intersect_ukey ( array $比較配列1, array $比較配列2[, array ..., callback $コールバック関数] )

他の全ての引数に存在する比較配列1の全ての値を含む配列を返します。

比較は、ユーザー指定のコールバック関数を使って行われます。 このコールバック関数は第1引数が第2引数より小さい、等しい、大きい場合に、 それぞれ負の値、0、正の値を返す必要があります。

<?
if (function_exists('array_intersect_ukey')) {
    function key_compare_func($key1$key2) {
        if ($key1 == $key2) return 0;
        else if ($key1 $key2) return 1;
        else return -1;
    }
    $array1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
    $array2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'  => 8);
    var_dump(array_intersect_ukey($array1$array2'key_compare_func'));
    //array(2) { ["blue"]=>  int(1) ["green"]=>  int(3) }
}
?>

array_udiff PHP5~
データの比較にコールバック関数を用いて、配列の差分を求める

unknown

array array_udiff ( array $比較配列1, array $比較配列2[, array ..., callback $データ比較コールバック関数] )

比較配列1から他の比較配列の中に存在しない値を含む配列を返します。 キーと値の関係は維持されます。

データ比較には、ユーザー指定のデータ比較コールバック関数が用いられます。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

array_diff()関数と似ていますが、データ比較に内部関数を使用する点が異なります。

<?
class cr {
    private $priv_member;
    function cr($val){
        $this->priv_member $val;
    }
    #データ比較
    function comp_func_cr($a$b){
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff($a$b, array("cr""comp_func_cr"));
print_r($result);
/*
Array(
    [0.5] => cr Object([priv_member:private] => 12),
    [0] => cr Object([priv_member:private] => 23),
)
*/
?>

array_udiff_assoc PHP5~
データの比較にコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める

unknown

array array_udiff_assoc ( array $比較配列1, array $比較配列2[, array ... , callback $データ比較コールバック関数] )

比較配列1から他の比較配列の中に存在しない値を含む配列を返します。 array_diff()関数array_udiff()関数と異なり、キーが比較に使用されます。

配列データの比較は、ユーザー指定のコールバック関数を用いて行われます(array_diff_assoc()関数とは反対の比較)。

このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
class cr {
    private $priv_member;
    function cr($val){
        $this->priv_member $val;
    }
    #データ比較
    function comp_func_cr($a$b){
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff_assoc($a$b, array("cr""comp_func_cr"));
print_r($result);
/*
Array(
    [0.1] => cr Object ([priv_member:private] => 9),
    [0.5] => cr Object([priv_member:private] => 12),
    [0] => cr Object([priv_member:private] => 23)
)
*/
?>

array_udiff_uassoc PHP5~
データと添字の比較にコールバック関数を用いて、追加された添字の確認を含めて配列の差分を求める

unknown

array array_udiff_uassoc ( array $比較配列1, array $比較配列2[, array ... , callback $データ比較コールバック関数, callback $添字比較コールバック関数] )

比較配列1から他の比較配列の中に存在しない値を含む配列を返します。 array_diff()関数array_udiff()関数と異なり、キーが比較に使用されます。

配列データの比較は、ユーザー指定のデータ比較コールバック関数を用いて行われます(array_diff_assoc()関数とは反対の比較)。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、 それぞれ負の値、0、正の値を返す必要があります。

キーの比較は、ユーザー指定のキー比較コールバック関数を用いて行われます。 array_udiff_assoc()関数と異なり、キーの比較が内部関数で行われます。

<?
class cr {
    private $priv_member;
    function cr($val){
        $this->priv_member $val;
    }
    #データ比較
    function comp_func_cr($a$b){
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member $b->priv_member)? 1:-1;
    }
    #キー比較
    function comp_func_key($a$b){
        if ($a === $b) return 0;
        return ($a $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff_uassoc($a$b, array("cr""comp_func_cr"), array("cr""comp_func_key"));
print_r($result);
/*
Array(
    [0.1] => cr Object([priv_member:private] => 9),
    [0.5] => cr Object([priv_member:private] => 12),
    [0] => cr Object([priv_member:private] => 23)
)
*/
?>

array_uintersect PHP5~
データの比較にコールバック関数を用いて、配列の共通項を求める

unknown

array array_uintersect ( array $比較配列1, array $比較配列2[, array ..., callback データ比較関数] )

比較配列1から他の比較配列の中に存在する値を含む配列を返します。

配列データは、ユーザー指定のコールバック関数を用いて比較されます。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_uintersect($array1$array2"strcasecmp"));
//Array ( [a] => green, [b] => brown, [0] => red)
?>

array_uintersect_assoc PHP5~
データの比較にコールバック関数を用いて、追加された添字の確認も含めて配列の共通項を求める

unknown

array array_uintersect_assoc ( array $比較配列1, array $比較配列2[, array ..., callback $データ比較コールバック関数] )

比較配列1から他の比較配列の中に存在する値を含む配列を返します。 array_uintersect()関数と異なり、キーが比較に使用されます。

配列データはユーザー指定のデータ比較コールバック関数を用いて比較されます。 このコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result_array array_intersect_assoc($array1$array2);
//Array ( [a] => green )
?>

array_uintersect_uassoc PHP5~
データと添字の比較にコールバック関数を用いて、追加された添字の確認も含めて配列の共通項を求める

unknown

array array_uintersect_uassoc ( array $比較配列1, array $比較配列2[, array ..., callback $データ比較コールバック関数, callback $添字比較コールバック関数] )

比較配列1から他の比較配列の中に存在する値を含む配列を返します。 array_uintersect()関数と異なり、キーが比較に使用されます。

配列データはとキーは、それぞれユーザー指定のデータ比較コールバック関数キー比較コールバック関数を用いて比較されます。 これらのコールバック関数は、第1引数が第2引数より小さい、等しい、大きい場合に、それぞれ負の値、0、正の値を返す必要があります。

<?
$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "GREEN""B" => "brown""yellow""red");

print_r(array_uintersect_uassoc($array1$array2"strcasecmp""strcasecmp"));
//Array ( [a] => green, [b] => brown )
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop