Tips

2014.09.28

PHP 関数リファレンス 配列操作系4

PHP

関数リファレンス

今回も配列操作系の関数につい記述したいと思います。

array_diff

array_diff関数は配列内の要素(値)の中で、

別の配列の中に含まれない要素だけを抽出することができます。

書式

配列の要素を比較する

$配列変数名 = array_diff(‘比較される配列’, ‘比較する配列’);




引数

1つ目の引数には比較元の配列を指定し、

2つ目の引数には1つ目の配列と比較をさせたい配列を指定します。

すると1つ目の引数の配列の中から、2つ目の引数で指定した配列の値の中に

含まれていない要素だけを取り出すことができます。

3つ目以降の引数にも配列を指定できるので、

その場合は2つ目にも3つ目以降にも値が含まれていない要素だけが

1つ目の配列の中から抽出されます。


array_diff('比較される配列', '比較する配列1', '比較する配列2', ・・・);

返り値

返り値には配列を比較した結果、

1つ目の配列のみに値が存在した要素だけが配列によって返されます。


$var_diff = array_diff($var1, $var2);

使用例

以下のようにすることで $var1 の中から $var2 に中に

存在しない値だけを抽出することができます。

<pre>
<?php

  $var1 = array('aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg');
  $var2 = array('bbb', 'ddd', 'fff', 'ggg');

  $var_diff = array_diff($var1, $var2);
  var_dump($var_diff);

?>
</pre>

結果は以下のように

aaa, ccc, eee

という値だけが抽出されます。

ブラウザ確認画像

また比較する際にキー名は比較対象にしませんので、
キーが一致していても一致していなくても、値が重複していないものだけが抽出されるということになります。

<pre>
<?php

  $var1 = array('key1' => 'aaa', 'key2' => 'bbb', 'key3' => 'ccc', 'key4' => 'ddd', 'key5' => 'eee');
  $var2 = array('key1' => 'bbb', 'key4' => 'ddd');

  $var_diff = array_diff($var1, $var2);
  var_dump($var_diff);

?>
</pre>

結果は aaa, ccc, eee だけが抽出されます。

ブラウザ確認画像


array_diff_key

array_diff_key関数は array_diff のように配列内の中で、

別の配列の中に含まれない要素だけを抽出することができます。

ただ array_diff の場合は値をもとに抽出をしましたが、

array_diff_key の場合はキー名が重複していないものだけが抽出できます。

書式

配列をの要素を比較する

$配列変数名 = array_diff_key(‘比較される配列’, ‘比較する配列’);




新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search