Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łącznie tablic
ZenekN
post
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował ZenekN 1.06.2014, 12:18:08
Go to the top of the page
+Quote Post
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


  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.?

Ten post edytował kreatiff 1.06.2014, 14:42:40
Go to the top of the page
+Quote Post
ZenekN
post
Post #3





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Tak chcialbym dostac wynik w kolejnych liniach

Ten post edytował ZenekN 1.06.2014, 21:30:58
Go to the top of the page
+Quote Post
kreatiff
post
Post #4





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kreatiff 1.06.2014, 21:41:15
Go to the top of the page
+Quote Post
ZenekN
post
Post #5





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


@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

Ten post edytował ZenekN 2.06.2014, 08:53:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:04