SYNCERのロゴ
アイキャッチ画像

array_diff_key - 配列のキーの差異を確認する

array_diff_keyは、配列のキーの差異を調べる関数です。一方にあって一方にないキーを確認できます。比較は、(string)$a===(string)$bで行われます。例えば、数値の1と文字列の"1"は同じになります。多次元配列の場合、一次元のみが比較されます。

構文

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

パラメータ

$array1

基本の配列。

$array2

比較対象となる配列。

$...

比較対象となる配列は1つだけではなく、可変引数として第3引数以降に指定できる。

返り値

array

第1引数の配列にはあって、第2引数以降に指定した配列にはないキーの要素を集めた配列。

サンプルコード

<?php
	$array1 = [
		"a" => 1 ,
		"b" => 2 ,
		"c" => 3 ,
	] ;

	$array2 = [
		"a" => 11 ,
		"b" => 12 ,
	] ;

	$response = array_diff_key( $array1, $array2 ) ;

デモ

キーの差異を確認する

第1引数で指定した基本の配列にはあって、第2引数にはないキーを調べます。第1引数と第2引数を入れ替えると違う結果になります。

<?php
/*** このコードは編集できます。 ***/

	$array1 = [
		"a" => 1 ,
		"b" => 2 ,
		"c" => 3 ,
	] ;

	$array2 = [
		"a" => 11 ,
		"b" => 12 ,
	] ;

	$response = array_diff_key( $array1, $array2 ) ;

	print_r( $response ) ;
Array
(
    [c] => 3
)

第3引数以降を指定する

比較対象となる配列は1つだけではなく、第3引数以降で複数指定できます。第2引数以降の全ての配列のキーが比較対象となります。

<?php
/*** このコードは編集できます。 ***/

	$array1 = [
		"a" => 1 ,
		"b" => 2 ,
		"c" => 3 ,
	] ;

	$array2 = [
		"a" => 11 ,
	] ;

	$array3 = [
		"b" => 12 ,
	] ;

	$response = array_diff_key( $array1, $array2, $array3 ) ;

	print_r( $response ) ;
Array
(
    [c] => 3
)

比較方法

比較方法は(string)$a===(string)$bで行われます。なので、文字列に型変換して同じになる値は、同じものと判定されます。

<?php
/*** このコードは編集できます。 ***/

	$array1 = [
		"1" => "赤" ,
		"2" => "白" ,
		"3" => "黒" ,
	] ;

	$array2 = [
		1 => "緑" ,
		2 => "紫" ,
	] ;

	$response = array_diff_key( $array1, $array2 ) ;

	print_r( $response ) ;
Array
(
    [3] => 黒
)
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年6月21日 (水)
コンテンツを公開しました。