Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] array_fill
Forum PHP.pl > Forum > Przedszkole
czaro123
Witam,
  1. <?php
  2. $a = array('dom', 'mod', 'odm');
  3. $b = array(3,7,2);
  4. $de = count($a);
  5.  
  6. foreach ($a as $war){
  7. $c = array();
  8. for ($k=0; $k<$de; $k++){
  9. $c[] = array_fill(0,$b[$k],$a[$k]);
  10. }}
  11.  
  12. echo'<pre>';
  13. print_r($c);
  14. echo'</pre>';
  15. /*
  16. wynik:
  17. Array
  18. (
  19.   [0] => Array
  20.   (
  21.   [0] => dom
  22.   [1] => dom
  23.   [2] => dom
  24.   )
  25.  
  26.   [1] => Array
  27.   (
  28.   [0] => mod
  29.   [1] => mod
  30.   [2] => mod
  31.   [3] => mod
  32.   [4] => mod
  33.   [5] => mod
  34.   [6] => mod
  35.   )
  36.  
  37.   [2] => Array
  38.   (
  39.   [0] => odm
  40.   [1] => odm
  41.   )
  42. )
  43. */


powyższy kod wyświetla tablicę wielowymiarową. wszystko jest ok tylko co mam zrobić aby była to tablica jednowymiarowa z kluczami od 0 do n, tak aby nie powstawały żadne zagieżdżone tablice, które znów zaczynają się od [0]. z góry wielkie dzięki
abjk
Cytat(czaro123 @ 16.02.2014, 00:03:02 ) *
powyższy kod wyświetla tablicę wielowymiarową. wszystko jest ok tylko co mam zrobić aby była to tablica jednowymiarowa z kluczami od 0 do n, tak aby nie powstawały żadne zagieżdżone tablice, które znów zaczynają się od [0]. z góry wielkie dzięki


Chyba niemożliwe.
czaro123
ok, to czy jest jakiś sposób aby uzyskać tablicę jednowymiarową w której n-ty argument tablicy $a jest powtórzymy 'k' razy (ilość 'k' określa tablica $b)?
SmokAnalog
  1. <?php
  2. $entries = array(
  3. 'dom' => 3,
  4. 'mod' => 7,
  5. 'odm' => 2,
  6. );
  7.  
  8. $result = array();
  9.  
  10. foreach ($entries as $entry => $number){
  11. $result = array_merge($result, array_fill(0, $number, $entry));
  12. }


Zwróć uwagę, że pozmieniałem nazwy zmiennych, unikaj nazw w stylu $a, $b, $c itd. Po drugie zamieniłem dwie tablice na tablicę asocjacyjną. Słowa i liczby są tu powiązane, więc lepiej gdy będą w jednej strukturze.
czaro123
super, wielkie dzięki, sam bym nie wpadł aby połączyć $a i $b w tablicę asocjacyjną. jeszcze raz 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.