28 $oldLocale = setlocale(LC_COLLATE,
"0");
31 if (strpos($locale,
'.UTF8') ===
false) {
35 setlocale(LC_COLLATE, $locale,
'C.UTF-8',
'en_US.utf8');
36 ksort($sort, SORT_LOCALE_STRING);
37 setlocale(LC_COLLATE, $oldLocale);
67 if (!(is_array($array) || is_object($array))) {
71 $keyIsFirst =
"{$prefix}is_first";
72 $keyIsOdd =
"{$prefix}is_odd";
73 $keyIsEven =
"{$prefix}is_even";
74 $keyIsLast =
"{$prefix}is_last";
80 foreach ($array as $key =>
$element) {
83 $this->_decorateArrayObject(
$element, $keyIsOdd, !$isEven, $forceSetAll || !$isEven);
84 $this->_decorateArrayObject(
$element, $keyIsEven, $isEven, $forceSetAll || $isEven);
87 $this->_decorateArrayObject(
94 if ($forceSetAll || 0 ===
$index) {
95 $array[$key][$keyIsFirst] = 0 ===
$index;
97 if ($forceSetAll || !$isEven) {
98 $array[$key][$keyIsOdd] = !$isEven;
100 if ($forceSetAll || $isEven) {
101 $array[$key][$keyIsEven] = $isEven;
122 private function _decorateArrayObject(
$element, $key,
$value, $isSkipped)
162 $fullPath =
$path . $key;
191 foreach ($originalArray as $key =>
$value) {
192 if (array_key_exists($key, $newArray)) {
195 if (count($valueDiff)) {
196 $diff[$key] = $valueDiff;
199 if (
$value != $newArray[$key]) {
elseif(isset( $params[ 'redirect_parent']))
ksortMultibyte(array &$sort, $locale)
recursiveDiff(array $originalArray, array $newArray)
decorateArray($array, $prefix='decorated_', $forceSetAll=false)
flatten(array $data, $path='', $separator='/')