Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łącznie tablic
Forum PHP.pl > Forum > PHP
ZenekN
Do czego dąże mam dwie tablice i chciałbym je połączyć i wyciągnąć dane z pętli
czyli tak:

Pierwsza tablica zawiera nazwę kategorii a w kluczu wartość id => nazwa
  1. 'Owoce' => array(
  2. (int) 0 => ' Banan',
  3. (int) 1 => 'Cytryna',
  4. )
  5. )


Druga tablica zawiera nazwę kategorii a w kluczu nazwa => kod własny
  1. 'Owoce' => array(
  2. 'Banan' => '2099',
  3. 'Cytryna' => '218'
  4. )
  5. )



Prawdopodobnie chciałbym złączyć tablice i móc wyciągać po pętlach foreach
pierwszego stopnia: nazwa kategorii
drugiego stopnia: numer id
trzeciego stopnia po kluczu -> nazwę produktu, po wartości kod własny czyli coś takiego

  1. 'Owoce' => array(
  2. (int) 0 => array(
  3. 'Banan' => '2099'),
  4. (int) 1 => array(
  5. 'Cytryna' => '218'),
  6. )
  7. )


Czyli prawdopodobnie chciałbym rozwiązać to w ten sposób

  1. foreach($nazwa_zmiennej as $nazwa_kategorii){
  2.  
  3. echo $nazwa_kategorii;
  4.  
  5. foreach($nazwa_kategorii as $id_produktu){
  6.  
  7. echo $id_produktu;
  8.  
  9. foreach($id_produktu as $nazwa_produktu => $kod_wlasny_produktu)
  10. {
  11. echo $nazwa_produktu;
  12. echo $kod_wlasny_produktu;
  13.  
  14. }
  15. }
  16. }
kreatiff
  1. $a = array(
  2. 'Owoce' => array(
  3. (int) 0 => 'Banan',
  4. (int) 1 => 'Cytryna',
  5. )
  6. );
  7. $b = array(
  8. 'Owoce' => array(
  9. 'Banan' => '2099',
  10. 'Cytryna' => '218'
  11. )
  12. );
  13.  
  14. $c = array_map(function($i) use ($b) {
  15. return array($i => $b['Owoce'][$i]);
  16.  
  17. }, $a['Owoce']);
  18. echo'<pre>',var_dump($c),'</pre>';
I z takiej tablicy iteracjami wyciągasz po kolei dane.
Sprawę ułatwiłoby jasne określenie oczekiwanego formatu danych na wyjściu. Bo może wcale nie potrzebujesz żadnej tablicy pośredniej, a jedynie chcesz dostać w kolejnych liniach:
0;Banan;2099
1;Cytryna;218
itd.?
ZenekN
Tak chcialbym dostac wynik w kolejnych liniach
kreatiff
No to od razu można wyciągać te dane bez łączenia tablic:
  1. foreach ( $a as $k => $kat ) {
  2. foreach ( $kat as $id => $owoc ) {
  3. echo $k . ';' . $id . ';' . $owoc . ';' . $b[$k][$owoc] . ";\n";
  4. }
  5. }
Odnoszę się do nazwenictwa tablic z mojego pierwszego posta.
ZenekN
@kreatiff, właśnie o to mi chodziło, nie wiedziałem jak wyciągnąć dane z innej pętli za pomocą klucza.
Wielkie dzięki
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.