/wcfsetup/install/files/lib/util/ArrayUtil.class.php

https://github.com/KomHunter2/WCF · PHP · 157 lines · 82 code · 9 blank · 66 comment · 15 complexity · ccc992a6ef1742d684be7329b716bd47 MD5 · raw file

  1. <?php
  2. namespace wcf\util;
  3. /**
  4. * Contains Array-related functions.
  5. *
  6. * @author Marcel Werk
  7. * @copyright 2001-2009 WoltLab GmbH
  8. * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  9. * @package com.woltlab.wcf
  10. * @subpackage util
  11. * @category Community Framework
  12. */
  13. class ArrayUtil {
  14. /**
  15. * Applies StringUtil::trim() to all elements of an array.
  16. *
  17. * @param array $array
  18. * @param boolean $removeEmptyElements
  19. * @return array $array
  20. */
  21. public static function trim($array, $removeEmptyElements = true) {
  22. if (!is_array($array)) {
  23. return StringUtil::trim($array);
  24. }
  25. else {
  26. foreach ($array as $key => $val) {
  27. $temp = self::trim($val, $removeEmptyElements);
  28. if ($removeEmptyElements && empty($temp)) unset($array[$key]);
  29. else $array[$key] = $temp;
  30. }
  31. return $array;
  32. }
  33. }
  34. /**
  35. * Applies intval() to all elements of an array.
  36. *
  37. * @param array $array
  38. * @return array $array
  39. */
  40. public static function toIntegerArray($array) {
  41. if (!is_array($array)) {
  42. return intval($array);
  43. }
  44. else {
  45. foreach ($array as $key => $val) {
  46. $array[$key] = self::toIntegerArray($val);
  47. }
  48. return $array;
  49. }
  50. }
  51. /**
  52. * Converts html special characters in arrays.
  53. *
  54. * @param array $array
  55. * @return array $array
  56. */
  57. public static function encodeHTML($array) {
  58. if (!is_array($array)) {
  59. return StringUtil::encodeHTML($array);
  60. }
  61. else {
  62. foreach ($array as $key => $val) {
  63. $array[$key] = self::encodeHTML($val);
  64. }
  65. return $array;
  66. }
  67. }
  68. /**
  69. * Applies stripslashes on all elements of an array.
  70. *
  71. * @param array $array
  72. * @return array $array
  73. */
  74. public static function stripslashes($array) {
  75. if (!is_array($array)) {
  76. return stripslashes($array);
  77. }
  78. else {
  79. foreach ($array as $key => $val) {
  80. $array[$key] = self::stripslashes($val);
  81. }
  82. return $array;
  83. }
  84. }
  85. /**
  86. * Appends a suffix to all elements of the given array.
  87. *
  88. * @param array $array
  89. * @param string $suffix
  90. * @return array
  91. */
  92. public static function appendSuffix($array, $suffix) {
  93. foreach ($array as $key => $value) {
  94. $array[$key] = $value . $suffix;
  95. }
  96. return $array;
  97. }
  98. /**
  99. * Alias to php array_intersect_key() function.
  100. *
  101. * @deprecated as of WCF 2.0, use PHP's array_intersect_key() function directly
  102. *
  103. * @param array $array1 The array with master keys to check.
  104. * @param array $array2 An array to compare keys against.
  105. * @return Returns an associative array containing all the values of array1 which have matching keys that are present in all arguments.
  106. */
  107. public static function intersectKeys($array1, $array2) {
  108. $parameters = func_get_args();
  109. return call_user_func_array('array_intersect_key', $parameters);
  110. }
  111. /**
  112. * Converts dos to unix newlines.
  113. *
  114. * @param array $array
  115. * @return array $array
  116. */
  117. public static function unifyNewlines($array) {
  118. if (!is_array($array)) {
  119. return StringUtil::unifyNewlines($array);
  120. }
  121. else {
  122. foreach ($array as $key => $val) {
  123. $array[$key] = self::unifyNewlines($val);
  124. }
  125. return $array;
  126. }
  127. }
  128. /**
  129. * Converts a array of strings to requested character encoding.
  130. * @see mb_convert_encoding()
  131. *
  132. * @param string $inCharset
  133. * @param string $outCharset
  134. * @param string $array
  135. * @return string $array
  136. */
  137. public static function convertEncoding($inCharset, $outCharset, $array) {
  138. if (!is_array($array)) {
  139. return StringUtil::convertEncoding($inCharset, $outCharset, $array);
  140. }
  141. else {
  142. foreach ($array as $key => $val) {
  143. $array[$key] = self::convertEncoding($inCharset, $outCharset, $val);
  144. }
  145. return $array;
  146. }
  147. }
  148. }