Guest User

Untitled

a guest
Mar 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. if (!function_exists('to_array')) {
  2. function to_array($value)
  3. {
  4. if (is_object($value)) {
  5. $value = get_object_vars($value);
  6. }
  7.  
  8. return is_array($value) ? array_map(__FUNCTION__, $value) : $value;
  9. }
  10. }
  11.  
  12. if (!function_exists('array_keys_exist')) {
  13. /**
  14. * Аналог array_key_exists, но может искать несколько массив ключей
  15. *
  16. * @param mixed $keys
  17. * @param array $array
  18. * @return bool
  19. */
  20. function array_keys_exists($keys, array $array)
  21. {
  22. return ! array_diff_key(array_flip((array) $keys), $array);
  23. }
  24. }
  25.  
  26. if (!function_exists('array_change_key')) {
  27. /**
  28. * Заменяет ключ массива на новый
  29. *
  30. * @param mixed $keys
  31. * @param array $array
  32. * @return bool
  33. */
  34. function array_change_key(array $array, $oldKey, $newKey)
  35. {
  36. if (! array_key_exists($oldKey, $array)) {
  37. return $array;
  38. }
  39.  
  40. $keys = array_keys($array);
  41. $keys[ array_search($oldKey, $keys) ] = $newKey;
  42.  
  43. return array_combine($keys, $array);
  44. }
  45. }
  46.  
  47. if (!function_exists('array_change_keys')) {
  48.  
  49. /**
  50. * Заменяет ключи массива на новые
  51. *
  52. * @param array $array [description]
  53. * @param [type] $keys [description]
  54. * @return [type] [description]
  55. */
  56. function array_change_keys(array &$array, $keyMap)
  57. {
  58. $keyMap = (array) $keyMap;
  59.  
  60. array_recursive($array, function($item, $oldKey, &$array) use ($keyMap) {
  61. if (in_array($oldKey, array_keys($keyMap), true)
  62. ) {
  63. $array[$keyMap[$oldKey]] = $array[$oldKey];
  64. unset($array[$oldKey]);
  65. }
  66. });
  67. }
  68. }
  69.  
  70. if (!function_exists('array_is_assoc')) {
  71. /**
  72. * Проверяет является ли массив ассоциативным
  73. *
  74. * @param array $array
  75. * @return bool
  76. */
  77. function array_is_assoc(array $array)
  78. {
  79. if (array() === $array) {
  80. return false;
  81. }
  82.  
  83. return array_keys($array) !== range(0, count($array) - 1);
  84. }
  85. }
  86.  
  87. if (!function_exists('array_is_indexed')) {
  88. /**
  89. * Проверяет является ли массив индексированным
  90. *
  91. * @param array $array
  92. * @return bool
  93. */
  94. function array_is_indexed(array $array)
  95. {
  96. return ! array_is_assoc($array);
  97. }
  98. }
  99.  
  100. if (! function_exists('array_recursive')) {
  101. function array_recursive(array &$array, callable $callback)
  102. {
  103. foreach (array_keys($array) as $key) {
  104.  
  105. if (is_array($array[$key])) {
  106. array_recursive($array[$key], $callback);
  107. }
  108.  
  109. call_user_func_array($callback, [ $array[$key], $key, &$array ]);
  110. }
  111. }
  112. }
  113.  
  114. if (!function_exists('array_wrap_key')) {
  115. function array_wrap_key(array &$array, $keys)
  116. {
  117. $keys = (array) $keys;
  118.  
  119. array_recursive($array,
  120. function($item, $key, &$array) use ($keys) {
  121. if (in_array($key, $keys, true) && ! array_is_indexed($array[$key])) {
  122. $array[$key] = [ $array[$key] ];
  123. }
  124. }
  125. );
  126. }
  127. }
  128.  
  129. if (!function_exists('array_wrap_assoc')) {
  130. function array_wrap_assoc(array &$array)
  131. {
  132. if (array_is_assoc($array)) {
  133. $array = [ $array ];
  134. }
  135. }
  136. }
Add Comment
Please, Sign In to add comment