Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zliczanie elementów w tabliwy wielowymiarowej
Forum PHP.pl > Forum > Przedszkole
czaro123
Witam,
kod poniżej:
  1. $aaa = array('dom'=> array(0.34, 0.42, 0.75), 'mod' => array(2,3,4,5,6), 'odm' => array(4,2));
  2.  
  3. $gg = count($aaa, COUNT_RECURSIVE);
  4. print_r($gg);
  5.  
  6. $aae = count($aaa);
  7.  
  8. foreach($aaa as $key => $war){
  9. $aad = array();
  10. for ($i=0; $i<$aae; $i++){
  11. $aad[$key][] = count($aaa[$i]);
  12. }
  13. }
  14.  


wiersz 4 oblicza ilość argumentów w całej tablicy $aaa, wiersz 6 wyświetla ilość tablic zagnieżdżonych w $aaa. wiersze 8-13 to moja próba zliczania argumentów wewnątrz poszczególnych tablic tzn chciałbym dostać wynik $aad = array (dom => 3, mod => 5, odm =>2) ale wyświetla mi się niezdefiniowany offset w wierszu 11. czy mgółbym prosić o wskazanie błędu? z góry dziękuję
chmiello
Odwołujesz się do elementów które nie istnieją - ten for jest tam niepotrzebny. Sam zobacz:


  1. $aaa = array('dom'=> array(0.34, 0.42, 0.75), 'mod' => array(2,3,4,5,6), 'odm' => array(4,2));
  2.  
  3. $gg = count($aaa, COUNT_RECURSIVE);
  4. print_r($gg);
  5.  
  6. $aae = count($aaa);
  7. $aad = array();
  8. foreach($aaa as $key => $war){
  9.  
  10. $aad[$key] = count($aaa[$key]);
  11.  
  12. }
  13. echo '<pre>';
  14. print_r($aad);
czaro123
wielkie dzięki, taka prościzna a człowiek traci nerwy smile.gif a jeśli chciałbym np do każdego elementu z tablicy $aaa dodać np 3 to jak to zapisać w wierszu wewnątrz pętli foreach?
jeśli zapiszę w ten sposób:
  1. foreach($aaa as $key => $war){
  2. $aas[$key] = $aaa[$key] + 3;
  3. }

to mam "Unsupported operand types" a jeśli w ten:
  1. $aae = count($aaa);
  2. foreach($aaa as $key => $war){
  3. $aad = array();
  4. for ($i=0; $i<$aae; $i++){
  5. $aad[$key][] = $aaa[$i] + 3;
  6. }
  7. }
  8.  

to podpowiada mi że nie zdefiniowałem offsetu
chmiello
Do czegoś takiego najłatwiej będzie użyć operatora & - czyli referencji - dzięki temu możesz edytować wartość konkretnego elementu tablicy, to jest chyba najszybsze rozwiązanie


  1. foreach($aaa as &$war){
  2.  
  3. foreach($war as &$one){
  4. $one += 3;
  5. }
  6.  
  7. }
czaro123
dziękuję
StevDefs
Fedex Pyridium Cod Low Price With Overnight Delivery Cialis Ou Autre Produit generic levitra for sale For Sale Hydrochlorothiazide Secure Nausea And Amoxicillin

Buy Tamoxifen Research Chemical Canadian Internet Pharmacies Misoprostol Cytotec Prix generic cialis Cialis Generico Acquisto Sicuro Tabletas Propecia Finasteride

Levitra Natur order cialis online Como Usar Propecia

Citalopram Online Levitra Packungsgro?Enverordnung buy viagra Viagra Versand Packstation
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.