Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica Wielowymiarowa - jak to ugryźć ?
Forum PHP.pl > Forum > PHP
wojtek992
Witam

Jak wydobyć z tablicy wielowymiarowej pokazanej poniżej zmienne tekstowe [#text], czy jest jakiś prosty sposób ? Pół dnia już kombinuje, za pomoc z góry dziękuje smile.gif

  1. (
  2. [xml-stylesheet] => Array
  3. (
  4. [0] =>
  5. )
  6.  
  7. [WEZWANIEDOZAPLATY] => Array
  8. (
  9. [0] =>
  10. [1] => Array
  11. (
  12. [WIERZYCIEL] => Array
  13. (
  14. [0] => Array
  15. (
  16. [NAZWAW] => Array
  17. (
  18. [0] => Array
  19. (
  20. [#text] => Firma Krzak Sp.z.o.o.
  21. )
  22.  
  23. )
  24.  
  25. [ADRESW] => Array
  26. (
  27. [0] => Array
  28. (
  29. [#text] => Osiedlowa
  30. )
  31.  
  32. )
  33.  
  34. [MIASTOW] => Array
  35. (
  36. [0] => Array
  37. (
  38. [#text] => Warszawa
  39. )
  40.  
  41. )
  42.  
  43. [NIPW] => Array
  44. (
  45. [0] => Array
  46. (
  47. [#text] => 591-117-42-35
  48. )
  49.  
  50. )
  51.  
  52. )
  53.  
  54. )
  55.  
  56. [MIEJSCEDATA] => Array
  57. (
  58. [0] => Array
  59. (
  60. [MIEJSCE] => Array
  61. (
  62. [0] => Array
  63. (
  64. [#text] => Warszawa
  65. )
  66.  
  67. )
  68.  
  69. [DATA] => Array
  70. (
  71. [0] => Array
  72. (
  73. [#text] => 13.10.2011
  74. )
  75.  
  76. )
  77.  
  78. )
  79.  
  80. )
  81.  
  82. ......................

tehaha
to pokaż co wykombinowałeś
matrik
może ci się przyda array_search?
wojtek992
No kurcze nic nie wykombinowałem, wszystko sprowadza się do tego, że muszę zapisać plik xml do bazy MYSQL, za pomocą DOMdocument, plik xml wygląda miejwięcej tak :


  1. <?xml version="1.0" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="WDZ.xsl"?>
  3. <!DOCTYPE WEZWANIEDOZAPLATY SYSTEM "WDZ.dtd">
  4. <WEZWANIEDOZAPLATY>
  5. <WIERZYCIEL>
  6. <NAZWAW>Firma Krzak Sp.z.o.o.</NAZWAW>
  7. <ADRESW>Osiedlowa</ADRESW>
  8. <NUMERBUDYNKUW>3A</NUMERBUDYNKUW>
  9. <NUMERLOKALUW>8</NUMERLOKALUW>
  10. <KODPOCZTOWYW>83-400</KODPOCZTOWYW>
  11. <MIASTOW>Warszawa</MIASTOW>
  12. <NIPW>591-117-42-35</NIPW>
  13. </WIERZYCIEL>
  14. <MIEJSCEDATA>
  15. <MIEJSCE>Warszawa</MIEJSCE>
  16. <DATA>13.10.2011</DATA>
  17. </MIEJSCEDATA>
  18. <DLUZNIK>
  19. <NAZWAD>Jan Kowalski</NAZWAD>
  20.  
  21. <ADRESD>Robotnicza</ADRESD>
  22. <NUMERBUDYNKUD>8</NUMERBUDYNKUD>
  23. <NUMERLOKALUD>1</NUMERLOKALUD>
  24.  
  25. <KODPOCZTOWYD>22-034</KODPOCZTOWYD>
  26. <MIASTOD>Sopot</MIASTOD>
  27. <NIPD>591-117-42-35</NIPD>
  28. </DLUZNIK>
  29. <ZESTAWIENIE>
  30. <FAKTURA>
  31. <LP>1</LP>
  32. <NRFAKTURY>102/2010</NRFAKTURY>
  33. <DATA>11.10.2011</DATA>
  34. <KWOTANETTO>200</KWOTANETTO>
  35. <KWOTABRUTTO>246</KWOTABRUTTO>
  36. <TERMINPLATNOSCI>25.10.2011</TERMINPLATNOSCI>
  37. <POZOSTAJEDOZAPLATY>246</POZOSTAJEDOZAPLATY>
  38. </FAKTURA>
  39. <FAKTURA>
  40. <LP>2</LP>
  41. <NRFAKTURY>1025/2010</NRFAKTURY>
  42. <DATA>11.10.2011</DATA>
  43. <KWOTANETTO>2200</KWOTANETTO>
  44. <KWOTABRUTTO>2433</KWOTABRUTTO>
  45. <TERMINPLATNOSCI>26.10.2011</TERMINPLATNOSCI>
  46. <POZOSTAJEDOZAPLATY>5463</POZOSTAJEDOZAPLATY>
  47. </FAKTURA>
  48. <SUMA>1230,05</SUMA>
  49. </ZESTAWIENIE>
  50. <SUMASLOWNIE>jeden tysiąc dwieście trzydzieści złotych i pięć groszy</SUMASLOWNIE>
  51. <DANEBANKU>
  52. <NAZWA>Mbank</NAZWA>
  53. <NUMERKONTA>50 1020 5558 1111 1594 6590 0010</NUMERKONTA>
  54. </DANEBANKU>
  55. </WEZWANIEDOZAPLATY>
  56.  
  57.  


Wykombinowałem z tego tablicę wielowymiarową, ale za bardzo nie wiem jak pobrać z niej w szybki sposób dane, niby łatwe, a jakoś nie mogę, tablica wygląda tak :

  1. Array
  2. (
  3. [xml-stylesheet] => Array
  4. (
  5. [0] =>
  6. )
  7.  
  8. [WEZWANIEDOZAPLATY] => Array
  9. (
  10. [0] =>
  11. [1] => Array
  12. (
  13. [WIERZYCIEL] => Array
  14. (
  15. [0] => Array
  16. (
  17. [NAZWAW] => Array
  18. (
  19. [0] => Array
  20. (
  21. [#text] => Firma Krzak Sp.z.o.o.
  22. )
  23.  
  24. )
  25.  
  26. [ADRESW] => Array
  27. (
  28. [0] => Array
  29. (
  30. [#text] => Osiedlowa
  31. )
  32.  
  33. )
  34.  
  35. [MIASTOW] => Array
  36. (
  37. [0] => Array
  38. (
  39. [#text] => Warszawa
  40. )
  41.  
  42. )
  43.  
  44. [NIPW] => Array
  45. (
  46. [0] => Array
  47. (
  48. [#text] => 591-117-42-35
  49. )
  50.  
  51. )
  52.  
  53. )
  54.  
  55. )
  56.  
  57. [MIEJSCEDATA] => Array
  58. (
  59. [0] => Array
  60. (
  61. [MIEJSCE] => Array
  62. (
  63. [0] => Array
  64. (
  65. [#text] => Warszawa
  66. )
  67.  
  68. )
  69.  
  70. [DATA] => Array
  71. (
  72. [0] => Array
  73. (
  74. [#text] => 13.10.2011
  75. )
  76.  
  77. )
  78.  
  79. )
  80.  
  81. )
  82.  
  83. ......................
tehaha
no dobrze, ale czego dokładnie nie wiesz? napisałeś że "pół dnia kombinowałeś" i nie masz nawet jednej linijki kodu?

żeby dobrać się do tych wartości w tablicy musisz zrobić kilka pętli foreach(), aczkolwiek myślę, że prościej będzie operować na pliku XML zamiast tablicy - tutaj masz tutorial jak jak to zrobić musisz tylko trochę przerobić ten kod i powinno się udać http://www.geekpedia.com/tutorial156_How-t...ng-PHP-DOM.html
wojtek992
No i wszystko gra ,dobry poradnik , do czego służy ta linijka :

$NAZWAW2 = $NAZWAW->item(0)->nodeValue


Dzięki wieleke
Bags_Bunny
  1. $output = array();
  2.  
  3. array_walk_recursive( $array, function( $value, $index, &$output )
  4. {
  5. if( $index === '#text' )
  6. {
  7. // tutaj możesz zrobic z tym co chcesz
  8. $output[] = $value;
  9. }
  10. }, &$output ); // to jest brzydkie; jeśli ten kod ma być cześciej wykorzystywany, to proponuję wymyślić coś lepszego


Powyższy kod przejrzy rekurencyjnie tablicę $array i umieści wszystkie wartości spełniające warunek w tablicy $output;
wojtek992
DOBRE , Dzięki wielke temat do zamknięcia
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.