2010-08-03 4 views
2

J'ai un tableau « $ abc », qui dispose de 9 éléments, comme: -Concaténez certains éléments de tableau parmi beaucoup d'autres en PHP

Array 
(
    [a] => Jack 
    [b] => went 
    [c] => up 
    [d] => the 
    [e] => hill 
    [f] => but 
    [g] => never 
    [h] => came 
    [i] => back 
) 

Maintenant je dois concaténer seulement les 4 éléments à partir de l'indice « b » à l'index "e" seulement. Mais je ne sais pas quoi faire. J'ai utilisé la fonction "implode()" de PHP dans les cas où tous les éléments du tableau sont concaténés.

Toute aide est grandement appréciée.

Répondre

3

Vous devez d'abord extraire les valeurs souhaitées, puis utiliser implode. Vous pouvez utiliser array_slice:

echo implode(" ", array_slice($abc, 1, 4)); 

qui produirait went up the hill.

Si vous devez travailler avec les touches littérales, vous devez être un peu plus créatif. Dans votre cas, il serait probablement le meilleur juste pour boucler dans le tableau et comparer, mais vous pouvez faire quelque chose d'exotique aussi:

echo implode(" ", array_intersect_key($abc, array_flip(range('b', 'e')))); 
+1

+1 utilisation Neat de array_intersect_key() et array_flip() –

1
$test = array ('a' => 'Jack', 
       'b' => 'went', 
       'c' => 'up', 
       'd' => 'the', 
       'e' => 'hill', 
       'f' => 'but', 
       'g' => 'never', 
       'h' => 'came', 
       'i' => 'back' 
      ); 
$start = 'b'; 
$end = 'e'; 

$result = implode(' ',array_slice($test,array_search($start,array_keys($test)),array_search($end,array_keys($test))-array_search($start,array_keys($test))+1)); 
echo $result; 
+0

+1, pour un tel affichage dynamique de l'utilisation dynamique de découpage de tableau, bien que l'on doive aller à fond pour le comprendre en premier. –

+0

Certainement plus facile de calculer les valeurs de tranche en dehors de la fonction array_slice(); mais je dois concéder à l'utilisation intelligente de array_intersect_key() et array_flip() –

Questions connexes