2014-09-03 6 views
-3

J'ai une variable PHP qui contient des nombres séparés par un espace. Je veux remplacer chaque espace par une nouvelle ligne et ensuite vouloir mettre ces nombres dans une liste ou un tableau HTML.Comment remplacer l'espace par une nouvelle ligne

Voici un exemple de chaîne:

$numbers = "9844786187 9844786187 9864097002 9864097002 9590951428 9590951428 9839014611 9839014611 9039771174 9039771174"; 

Ces chiffres sont dynamiques et il pourrait y avoir un nombre plus ou moins.

Comment puis-je obtenir ma sortie?

+4

Vous posez des questions mauvaises. [Vous devriez lire ceci avant de poster votre prochain.] (Http://s.tk/onhold) –

+1

Pourquoi ne pas utiliser str_replace()? http://php.net/str_replace –

Répondre

1

I (pense que je) clarifiai votre question et croire que vous essayez de prendre une liste de numéros dans une chaîne, séparés par des espaces, et l'affiche de différentes façons (par exemple, liste ou tableau). L'approche que vous nous avez demandé d'utiliser ne semble pas être la meilleure pour cela. Au lieu de cela, je suggère explode():

$numbers = "9844786187 9844786187 9864097002 9864097002 9590951428 9590951428 9839014611 9839014611 9039771174 9039771174"; 
$number_array = explode(" ", $numbers); 

echo "<ul>\n"; 
foreach($number_array as $number){ 
echo "\t<li>$number</li>\n"; 
} 
echo "</ul>\n" 

Sortie:

<ul> 
    <li>9844786187</li> 
    <li>9844786187</li> 
    <li>9864097002</li> 
    <li>9864097002</li> 
    <li>9590951428</li> 
    <li>9590951428</li> 
    <li>9839014611</li> 
    <li>9839014611</li> 
    <li>9039771174</li> 
    <li>9039771174</li> 
<ul> 
1

Comme suggéré, vous pouvez utiliser str_replace():

$numbers = str_replace(' ', '\n', $numbers); 

preg_replace est un str_replace "super"(), usign regex, vous pouvez l'utiliser de la même manière

$numbers = preg_replace('/ /', '\n', $numbers); 

Les / sont des délimiteurs. Dans votre cas, regex sont inutiles. Vous devriez utiliser str_replace.

Et comme Daryll Gill a suggéré, en utilisant:

$numbers = str_replace(' ', '<br>', $numbers); 

donne un meilleur résultat pour l'impression Web. Vous pouvez utiliser la fonction nl2br() sur les chiffres sur l'impression pour obtenir le même résultat avec la première proposition remplaçant

+0

Si vous imprimez sur une page Web. Ne serait-il pas préférable de remplacer l'espace par

+0

@DarylGill Bonne idée. Je vais ajouter cette solution à. –

Questions connexes