Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrażenie regularne x(n+1) -> 1,2,3
Forum PHP.pl > Forum > Przedszkole
jack314
Witam
Jak zamienić w ciągu $s1 wszystkie 'x' na kolejne elementy tablicy $s2 ?

  1. <?php
  2. $s1 ='<font color="#606060">x</font>
  3. <font color="#777777">x</font>
  4. <font color="#6b6b6b">x</font>
  5. <font color="#5a5a5a">x</font>
  6. <font color="#7a7a7a">x</font>
  7. <font color="#656565">x</font>
  8. <font color="#6c6c6c">x</font>
  9. <font color="#7d7d7d">x</font>
  10. <font color="#727272">x</font>
  11. <font color="#656565">x</font>';
  12.  
  13. $s2 = array(1,2,3,4,5,6,7,8,9,10);
  14.  
  15. $s1 = preg_replace("/<.*?>x<\/.*?>/", $s2, $s1);
  16. ?>


Chcę uzyskać:
  1. <?php
  2. $s1 ='<font color="#606060">1</font><font color="#777777">2</font><font color="#6b6b6b">3</font><font color="#5a5a5a">4</font><font color="#7a7a7a">5</font><font color="#656565">6</font><font color="#6c6c6c">7</font>
  3. <font color="#7d7d7d">8</font><font color="#727272">9</font><font color="#656565">10</font>';
  4. ?>


Zazwyczaj sam szukam rozwiązania ale dziś potrzebuję szybko rozwiązania, dziękuję Jacek
jaslanin
  1. <?php
  2. $s1 ='<font color="#606060">x</font>
  3. <font color="#777777">x</font>
  4. <font color="#6b6b6b">x</font>
  5. <font color="#5a5a5a">x</font>
  6. <font color="#7a7a7a">x</font>
  7. <font color="#656565">x</font>
  8. <font color="#6c6c6c">x</font>
  9. <font color="#7d7d7d">x</font>
  10. <font color="#727272">x</font>
  11. <font color="#656565">x</font>';
  12.  
  13.  
  14. $i = 0;
  15. function pr_callback($matches) {
  16. global $i;
  17. $replacement = array(1,2,3,4,5,6,7,8,9,10);
  18. return $matches[1].$replacement[$i++].$matches[2];
  19. }
  20.  
  21. echo preg_replace_callback('/(<.*?>)x(<\/.*?>)/', 'pr_callback', $s1);
  22.  
  23. ?>
jack314
Bardzo Ci dziękuję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.