/php/pear/PHP/Compat/Function/array_intersect_assoc.php

https://gitlab.com/trang1104/portable_project · PHP · 69 lines · 31 code · 7 blank · 31 comment · 8 complexity · 9963181611d233b12e958760f020d7da MD5 · raw file

  1. <?php
  2. // +----------------------------------------------------------------------+
  3. // | PHP Version 4 |
  4. // +----------------------------------------------------------------------+
  5. // | Copyright (c) 1997-2004 The PHP Group |
  6. // +----------------------------------------------------------------------+
  7. // | This source file is subject to version 3.0 of the PHP license, |
  8. // | that is bundled with this package in the file LICENSE, and is |
  9. // | available at through the world-wide-web at |
  10. // | http://www.php.net/license/3_0.txt. |
  11. // | If you did not receive a copy of the PHP license and are unable to |
  12. // | obtain it through the world-wide-web, please send a note to |
  13. // | license@php.net so we can mail you a copy immediately. |
  14. // +----------------------------------------------------------------------+
  15. // | Authors: Aidan Lister <aidan@php.net> |
  16. // +----------------------------------------------------------------------+
  17. //
  18. // $Id: array_intersect_assoc.php,v 1.4 2005/01/26 04:55:13 aidan Exp $
  19. /**
  20. * Replace array_intersect_assoc()
  21. *
  22. * @category PHP
  23. * @package PHP_Compat
  24. * @link http://php.net/function.array_intersect_assoc
  25. * @author Aidan Lister <aidan@php.net>
  26. * @version $Revision: 1.4 $
  27. * @since PHP 4.3.0
  28. * @require PHP 4.0.0 (user_error)
  29. */
  30. if (!function_exists('array_intersect_assoc')) {
  31. function array_intersect_assoc()
  32. {
  33. // Sanity check
  34. $args = func_get_args();
  35. if (count($args) < 2) {
  36. user_error('wrong parameter count for array_intersect_assoc()', E_USER_WARNING);
  37. return;
  38. }
  39. // Check arrays
  40. $array_count = count($args);
  41. for ($i = 0; $i !== $array_count; $i++) {
  42. if (!is_array($args[$i])) {
  43. user_error('array_intersect_assoc() Argument #' .
  44. ($i + 1) . ' is not an array', E_USER_WARNING);
  45. return;
  46. }
  47. }
  48. // Compare entries
  49. $intersect = array();
  50. foreach ($args[0] as $key => $value) {
  51. $intersect[$key] = $value;
  52. for ($i = 1; $i < $array_count; $i++) {
  53. if (!isset($args[$i][$key]) || $args[$i][$key] != $value) {
  54. unset($intersect[$key]);
  55. break;
  56. }
  57. }
  58. }
  59. return $intersect;
  60. }
  61. }
  62. ?>