Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie tablicy array
Forum PHP.pl > Forum > Przedszkole
nowyyy31
Posiadam taki kod:

  1. $html ='http://wp.pl>Wirtualna Polska>>http://wp.pl>wp>>';
  2. $matches = array();
  3. preg_match_all('#(.*?)>(.*?)>>#si', $html, $matches, PREG_SET_ORDER);
  4.  
  5. foreach ($matches as $val) {
  6.  
  7. echo $val[1] . "<br />\n";
  8. echo $val[2] . "<br />\n";
  9.  
  10. }
  11. print_r($matches);
  12. echo '<br />';
  13. echo $matches[0][0][2];


Jak wykonam skrypt otrzymuje:
  1. <a href="http://wp.pl" target="_blank">http://wp.pl</a>
  2. Wirtualna Polska
  3. <a href="http://wp.pl" target="_blank">http://wp.pl</a>
  4. wp
  5. Array ( [0] => Array ( [0] => <a href="http://wp.pl&gt;Wirtualna" target="_blank">http://wp.pl>Wirtualna</a> Polska>> [1] => <a href="http://wp.pl" target="_blank">http://wp.pl</a> [2] => Wirtualna Polska ) [1] => Array ( [0] => <a href="http://wp.pl&gt;wp&gt;&gt;" target="_blank">http://wp.pl>wp>></a> [1] => <a href="http://wp.pl" target="_blank">http://wp.pl</a> [2] => wp ) )
  6. t


Dlaczego polecenie echo $matches[0][0][2]; zwraca mi literkę 't', a nie tekst 'Wirtualna Polska'?
markonix
Jeżeli traktujesz string jak tablicę to zwróci Ci literę wg indeksu.
Tablicę masz dwuwymiarową, a nie 3.
_Borys_
  1. <?php
  2.  
  3. $html = 'http://wp.pl>Wirtualna Polska>>http://wp.pl>wp>>';
  4. $matches = array();
  5. preg_match_all('#(.*?)>(.*?)>>#si', $html, $matches, PREG_SET_ORDER);
  6. foreach ($matches as $val)
  7. {
  8. echo $val[1] . "<br />\n";
  9. echo $val[2] . "<br />\n";
  10. }
  11. echo '<pre>';
  12. print_r($matches);
  13. echo '</pre>';
  14. echo '<br />';
  15. //echo $matches[0][0][2];
  16.  
  17. ?>

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.