2009-02-14 5 views
4

Comment ajouter une nouvelle paire clé/valeur à un tableau existant dans des boucles foreach imbriquées et faire en sorte que cette paire persiste en dehors de la portée des boucles?PHP: modifications de tableau qui persistent au-delà de la portée d'une boucle foreach

<?PHP 
    include('magpierss/rss_fetch.inc'); 
    /* 
     one, two, skip a few... 
     $urls is an associative array with 
     database indices as keys and 
     URLs as values 
    */ 

    foreach ($urls as $url_hsh) 
    { 
     $feed_id = $url_hsh[0]; 
     $url  = $url_hsh[1]; 

     echo $feed_id . "<br/>" . $url . "<br/>"; // works as expected 

     $rss = fetch_rss($url); // from 'magpierss/rss_fetch.inc' above 

     foreach ($rss->items as $item) 
     { 
      $item['feed_id'] = $feed_id; 
      echo $item['feed_id'] . "<br/>"; // works as expected 
     } 

     foreach ($rss->items as $item) 
     { 
      echo $item['feed_id'] . "<br/>"; // nuthin..... 
     } 
    } 
?> 

grâce

Répondre

8

Si je comprends bien, ce que vous voulez est ce (pour la première boucle):

foreach ($rss->items as &$item) { 

Le & fera $item une référence, et les modifications que vous apportez il sera reflété dans $rss->items

+0

Merci je ne sais pas combien de fois je me suis heurté à ce problème. Peut lire depuis l'article $ mais ne pas y écrire. C'est parce qu'il fait une copie je suppose. – Keyo

Questions connexes