2009-05-18 4 views
2

J'ai un problème que je dois corriger plus tôt que plus tard. Si j'avais le temps de réécrire le script entier je le ferais, mais telle est la vie d'un programmeur, non? anywho, je l'ai pris en charge un projet et j'ai un tableau numérique associatif mixte multidimensionnel/comme ceci:multidimensionnel mixte associatif/décalage de tableau numérique

Array 
(
    [item1] => Array 
     (
      [dataset] => Array() 
      [3] => Array() 
      [7] => Array() 
     ) 
    [item2] => Array 
     (
      [dataset] => Array() 
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
     ) 
) 

ce que je dois faire est de changer l'indice d'ensemble de données dans chacune des itemX index pour être le dernier indice pour résultat ceci:

Array 
(
    [item1] => Array 
     (
      [3] => Array() 
      [7] => Array() 
      [dataset] => Array() 
     ) 
    [item2] => Array 
     (
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
      [dataset] => Array() 
     ) 
) 

quelques petites choses qui peuvent aider à y arriver est que je sais que l'ensemble de données index sera toujours le premier index dans l'index itemX et la clé sera toujours 'dataset' et les autres seront toujours des index numériques. est-il de toute façon de le faire en php? le fait que ce soit un tableau mixte me lance. Les index numériques ne peuvent pas être réinitialisés et commencent à 0. Peu importe qu'ils soient en ordre, ils viennent tous avant l'index 'dataset'. c'est peut-être juste un de ces jours ...: \ toutes les suggestions ou commentaires sont grandement appréciés.

Répondre

2

boucle si tous les éléments comme celui-ci:

foreach ($all_items as $key =>$items) { 
    $dataset = $items['dataset']; 
    unset($all_items[$key]['dataset']); // Removing it (from the top) 
    $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom) 
} 

Décharger l'élément « ensemble de données » et en ajoutant à nouveau causeront l'élément à ajouter au fond.

Il est important que vous modifiez le tableau d'origine directement, pas les éléments $ de foreach, car ces modifications n'affecteront pas le tableau d'origine.

+0

génial ... wow. comment ça? Je me suis tellement déconcerté dans toutes les dimensions que l'évidence m'a totalement échappé. Merci mec! – ocergynohtna

Questions connexes