Changeset 50699 in spip-zone


Ignore:
Timestamp:
Aug 24, 2011, 3:02:26 PM (8 years ago)
Author:
ben.spip@…
Message:

array_replace_recursive Compatibilite PHP<5.3.0 source : http://www.php.net/manual/en/function.array-replace-recursive.php#92574

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/formulaires/construire_formulaire.php

    r49996 r50699  
    223223                if (($defaut = $saisies_disponibles[$ajouter_saisie]['defaut']) and is_array($defaut)){
    224224                        $defaut = _T_ou_typo($defaut, 'multi');
     225
     226                        //Compatibilite PHP<5.3.0
     227                        //source : http://www.php.net/manual/en/function.array-replace-recursive.php#92574
     228                        if (!function_exists('array_replace_recursive'))
     229                        {
     230                                function array_replace_recursive($array, $array1)
     231                                {
     232                                        function recurse($array, $array1)
     233                                        {
     234                                                foreach ($array1 as $key => $value)
     235                                                {
     236                                                        // create new key in $array, if it is empty or not an array
     237                                                        if (!isset($array[$key]) || (isset($array[$key]) && !is_array($array[$key])))
     238                                                        {
     239                                                                $array[$key] = array();
     240                                                        }
     241                                                        // overwrite the value in the base array
     242                                                        if (is_array($value))
     243                                                        {
     244                                                                $value = recurse($array[$key], $value);
     245                                                        }
     246                                                        $array[$key] = $value;
     247                                                }
     248                                                return $array;
     249                                        }
     250 
     251                                        // handle the arguments, merge one by one
     252                                        $args = func_get_args();
     253                                        $array = $args[0];
     254                                        if (!is_array($array))
     255                                        {
     256                                                return $array;
     257                                        }
     258                                        for ($i = 1; $i < count($args); $i++)
     259                                        {
     260                                                if (is_array($args[$i]))
     261                                                {
     262                                                        $array = recurse($array, $args[$i]);
     263                                                }
     264                                        }
     265                                return $array;
     266                                }
     267                        }
    225268                        $saisie = array_replace_recursive($saisie, $defaut);
    226269                }
Note: See TracChangeset for help on using the changeset viewer.