2010-03-28 7 views
1

Je sais que je manque probablement quelque chose de facile, mais j'ai une boucle foreach et j'essaie de modifier les valeurs du premier tableau, et de sortir un nouveau tableau avec les modifications comme les nouvelles valeurs.Sortie PHP de la boucle foreach dans un nouveau tableau

Fondamentalement, je commence avec un tableau: 0 => A: B = 1> B: C 2 = > C: D

et j'utilise exploser() pour dépouiller la : l 'et deuxième lettres, donc je veux être laissé avec un tableau: 0 => A 1 => B 2 => C

L'explosion() une partie de ma fonction fonctionne très bien, mais je ne semblent obtenir des sorties de chaîne unique. A, B, et C.

+0

Pourriez-vous publier votre fonction? – animuson

Répondre

2

Sons comme tu veux quelque chose comme ça?

$initial = array('A:B', 'B:C', 'C:D'); 
$cleaned = array(); 
foreach($initial as $data) { 
    $elements = explode(':', $data); 
    $cleaned[] = $elements[0]; 
} 
+0

Aha! Exactement ce dont j'avais besoin. Merci! – RobHardgood

1

À moins que le tableau est référencé, foreach fonctionne sur un copie du tableau spécifié et non le tableau lui-même

$arr = array(0 => 'A:B', 1 => 'B:C', 2 => 'C:D'); 
// foreach($arr as $val) will not work. 
foreach($arr as &$val) { // prefix $val with & to make it a reference to actual array values and not just copy a copy. 
    $temp = explode(':',$val); 
    $val = $temp[0]; 
} 
var_dump($arr); 

sortie:

array(3) { 
    [0]=> 
    string(1) "A" 
    [1]=> 
    string(1) "B" 
    [2]=> 
    &string(1) "C" 
} 
+0

Hé, j'ai essayé votre réponse aussi, car elle ressemble à ce que j'ai besoin de faire, mais pour une raison quelconque, je ne pouvais pas le faire fonctionner ... Pas vraiment sûr pourquoi, ce n'est pas si compliqué et c'est déjà structuré. Eh bien, merci quand même :) – RobHardgood

Questions connexes