Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 reference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial
ASP ADO リファレンス | PHP関数リファレンス | MySQL関数リファレンス

ユーザ関数を使って複数の配列の要素の違いを調べる

■ ユーザ関数を使って複数の配列の要素の違いを調べる

array_udiff関数の機能は、array_diff関数と同じです。

配列 = array_udiff (配列1,
               配列2,
              [・・・・・・・, ]
              関数名)

また、array_diff_uassoc関数とarray_diff_assoc関数、array_udiff_uassoc関数は、array_diff_assoc関数と同様の働きをします。

$a = array(1, 2, 3)
$b = array (1, 3, 5)
$c=array_diff($a, $b)
// 配列の要素を操作するコード

array_diff関数によって返される配列では、元の配列のインデックスが保持されますので、「$c[0] = 2」となることに注意してください。
一方、array_diff_assoc関数は、配列の要素の値だけでなく、インデックスの違いもチェックします。

配列 = array_walk (配列,
               関数名,
               [パラメータ])

例えば、次のような場合には、配列「$a」にあって配列「$b」には存在しない「2」だけではなく、配列「$a」にも配列「$b」にも存在するがインデックスが同一でない「3」も返されます。

$a = array(1, 2, 3);     // 値が「3」の要素のインデックスは「2」
$b = array(1, 3, 5);     // 値が「3」の要素のインデックスは「1」
$c = array_diff_assoc($a, $b)
// $c[1] = 2
// $c[2] = 3   となる

 

<?php
   function comp($x, $y)
   {
      if($x === $y)
      {
         return 0;
      }
      return ($x > $y) ? 1 : -1;
   }

   $a = array("foo", "boo", 1, 2, 3);
   $b = array("foo", "woo", 2, 4, 6);
   $c = array_udiff($a, $b, "comp");
   $d = array_udiff_assoc($a, $b, "comp");
   $e = array_diff_uassoc($a, $b, "comp");
   $f = array_udiff_uassoc($a, $b, "comp", "comp");

   // header("Content-Type: text/plain; charset=EUC-JP");
   echo "[array_udiff]\n";
   foreach ($c as $key => $value)
   {
      echo "\$c[{$key}] = {$value}\n";
   }
   echo "\n";

   echo "[array_udiff_assoc]\n";
   foreach ($d as $key => $value)
   {
      echo "\$d[{$key}] = {$value}\n";
   }
   echo "\n";

   echo "[array_diff_uassoc]\n";
   foreach ($e as $key => $value)
   {
      echo "\$e[{$key}] = {$value}\n";
   }
   echo "\n";

   echo "[array_udiff_uassoc]\n";
   foreach ($f as $key => $value)
   {
      echo "\$f[{$key}] = {$value}\n";
   }
?>

<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル