Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] podział tablicy wielowymiarowej
Forum PHP.pl > Forum > Przedszkole
czaro123
Witam, fragment kodu poniżej:
  1. $kamp = array(array('analiza',2.4,4.4,6.4,23,13,9,2.38,1.6,0.82),
  2. array('pest',2.4,4.4,6.4,5,3,2,2.55,1.85,1.15),
  3. array('wulka',2.4,4.4,6.4,26,11,7,1.06,0.81,0.56));
  4. $bbb = count($kamp);
  5. foreach ($kamp as $wartosci){
  6. $miejsca1 = array();
  7. for($rzad = 0; $rzad<$bbb ; $rzad++){
  8. for ($kolumna = 1; $kolumna <4; $kolumna++){
  9. $miejsca1 = $kamp[$rzad][$kolumna];
  10. }
  11. }
  12. }
  13.  
  14. $aac = gettype($miejsca1);
  15. echo "$aac"; //wyświetla double lub integer w zależności od nr kolumn jakie dobieram
  16. echo '<br />';
  17. echo '<br />';
  18. print_r($miejsca1);//wyświetla 6.4




problem:
mam tablicę wielowymiarową o 10 kolumnach i nieznanej ilości rzędów. Z $kamp chciałbym stworzyć tablicę $miejsca1 od kolumny 1 do 4 - ilość rzędów jest z góry nie znana i stąd $bbb. próbowałem to zrobić na wiele sposobów ale za każdym razem coś nie działa - także próbowałem za pomocą funkcji array_chunk. w tym konkretnym przypadku powinna być to tablica od komórki [0,1] do komóki [3,4]. niestety nie powstaje array tylko integer lub double (w zależności od zmian jakie wprowadzę w for($kolumna = 1; $kolumna <4; $kolumna++) a po wyświetleniu $miejsca1 wyskakuje ostatnia wartość a nie nowo powstały array. prośba o wskazanie gdzie tkwi błąd. nowo powstała tablica będzie służyć do dalszych obliczeń.
pytanie:
jak z $kamp wyciąć 3 kolumny aby powstał nowy array.
z góry dziękuję za pomoc
CuteOne
  1. $tmp = array();
  2. foreach($tablica as $k => $v) {
  3. $tmp[$k] = array_chunk($v, 3, true);
  4. }
  5. var_dump($tmp);
vonski
Sprobuj zamienic to:

  1. $miejsca1 = $kamp[$rzad][$kolumna];


na:

  1. $miejsca1[] = $kamp[$rzad][$kolumna];
czaro123
super, dziękuję
kreatiff
Jednoliniowa alternatywa:
  1. $miejsca1 = array_map(function($i) { return array($i[1],$i[2],$i[3]);}, $kamp);
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.