/** * Transforme un tableau en chaine de caractères avec comme principe : * * - une case de vient une ligne de la chaine * - chaque ligne est générée avec la forme cle|valeur * - si une entrée du tableau est elle même un tableau, on met une ligne de la forme *clef * - pour marquer que l'on quitte un sous-tableau, on met une ligne commencant par /*, sauf si on bascule dans un autre sous-tableau. * * @param array $tableau Tableau à transformer * @return string Texte représentant les données du tableau */ function saisies_tableau2chaine($tableau) { if ($tableau and is_array($tableau)) { $chaine = ''; $avant_est_tableau = false; foreach ($tableau as $cle => $valeur) { if (is_array($valeur)) { $avant_est_tableau = true; $ligne = trim("*{$cle}"); $chaine .= "{$ligne}\n"; $chaine .= saisies_tableau2chaine($valeur) . "\n"; } else { if ($avant_est_tableau == true) { $avant_est_tableau = false; $chaine .= "/*\n"; } $ligne = trim("{$cle}|{$valeur}"); $chaine .= "{$ligne}\n"; } } $chaine = trim($chaine); return $chaine; } elseif (is_string($tableau)) { // Si c'est déjà une chaine on la renvoie telle quelle return $tableau; } else { return ''; } }
/** * Transforme un tableau en chaine de caractères avec comme principe : * * - une case de vient une ligne de la chaine * - chaque ligne est générée avec la forme cle|valeur * - si une entrée du tableau est elle même un tableau, on met une ligne de la forme *clef * - pour marquer que l'on quitte un sous-tableau, on met une ligne commencant par /*, sauf si on bascule dans un autre sous-tableau. * * @param array $tableau Tableau à transformer * @return string Texte représentant les données du tableau */ function saisies_tableau2chaine($tableau) { if ($tableau and is_array($tableau)) { $chaine = ''; $avant_est_tableau = False; foreach ($tableau as $cle => $valeur) { if (is_array($valeur)) { $avant_est_tableau = True; $ligne = trim("*{$cle}"); $chaine .= "{$ligne}\n"; $chaine .= saisies_tableau2chaine($valeur) . "\n"; } else { if ($avant_est_tableau == True) { $avant_est_tableau = False; $chaine .= "/*\n"; } $ligne = trim("{$cle}|{$valeur}"); $chaine .= "{$ligne}\n"; } } $chaine = trim($chaine); return $chaine; } elseif (is_string($tableau)) { return $tableau; } else { return ''; } }