Déplacer une clé dans un tableau multidimensionnel

Déplacer une clé dans un tableau multidimensionnel - PHP - Programmation

Marsh Posté le 03-01-2012 à 20:11:28    

Salut à tous et bonne année :)
 
Je cherche à créer une fonction qui me permettra de déplacer un ensemble clé/valeur au sein d'un tableau multidimensionnel.
L'idée c'est de me servir de ces tableaux pour afficher un menu, sans base de données, de manière simple et rapide.
 
Bref, voici un 1er jet de fonction :
 
Code PHP :
 


function array_remove( &$array, $key )
{
   unset($array[$key]);
}
 
 
function ModifCurrent ($tab, $current, $way)
 
 {
   
   
   
  foreach ($tab as $cle=>$valeur)  
   
  {
   
   
   if (!is_array($valeur))
   
   {
   
    if (($current == $cle) && ($way == 'up')) // Si on l'a trouvé et que on veut le déplacer vers le haut
     
    {
     
     array_remove( $tab, $cle ); // on le détruit  
     
     prev($tab); // on remonte
     
     prev($tab); // on remonte une 2e fois
     
     // DEBUG //
     
     $temp = current($tab);
     
     print '<br>Valeur temp : '.$temp.'<br>';
     
     
     //$tableau[$current] = $valeur;
     
    } else {
     
     print ' '; // non terminé
     
    }
   
   } else {
   
     
    ModifCurrent ($valeur, $current, $way);
     
   }
     
   
  } // fin foreach ge
   
   
  print_r ($tab);
   
   
 }
 
// Utilisation
 
if ((!empty($way)) && (!empty($current))) // ?current=who-owns-the-data&way=up
 
  ModifCurrent ($Menu, $current, $way);
 
// Tableau
 
$Menu = array  
 (
  'introduction' => array(),
   
  'cloud-computing-in-30-sec' => array(
   'what-is-cloud-computing' =>'what-is-cloud-computing',
   'types-of-cloud' => 'types-of-cloud',  
   'why-use-clouds' => 'why-use-clouds'
   ),
   
  'how-do-clouds-work' => array(
         'virtualisation' => 'virtualisation'),
   
  'clouds-in-IT-history' => array (),
   
  'the-big-issues' => array(
   'are-clouds-green' => 'are-clouds-green',
   'are-clouds-safe' => 'are-clouds-safe',
   'where-is-my-data-being-stored' => 'where-is-my-data-being-stored',
         'who-owns-the-data' => 'who-owns-the-data'
   ),
   
  'clouds-and-grids' => array(
   'clouds-and-grids-compared' => 'clouds-and-grids-compared',
   'cloudy-grids' => 'cloudy-grids',
   'future-directions' => 'future-directions'
   ),
   
  'cloud-powered-projects' => array(),
   
  'fin' => array()
   
 );
 
 


 
Mais mon print current ne renvoie rien (vide).
J'ai comme l'impression que mon pointeur dans le tableau n'est pas au bon endroit, pourtant il devrait suivre le foreach :/
 
Je galère un peu, et j'aurais besoin de votre aide... Merci ! ;)

Reply

Marsh Posté le 03-01-2012 à 20:11:28   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed