Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Usuwanie danej wartości z tablicy., unsert "-"
kamil18
post 14.05.2009, 18:54:01
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.05.2009

Ostrzeżenie: (10%)
X----


Witam.

Pisze kod który ma liczyć średnią ocen.

  1. <?php
  2. $ilosc = array($_POST['angielski'],$_POST['niemiecki'],$_POST['polski'],$_POST['historia'],$_POST['plastyka'],$_POST['informatyka'],$_POST['matematyka'],$_POST['wos'],$_POST['muzyka'],$_POST['biologia'],$_POST['geografia'],$_POST['fizyka'],$_POST['chemia'],$_POST['wf'],$_POST['technika'],$_POST['religia']);
  3. $suma = array_sum($ilosc);
  4. $srednia = $suma / count($ilosc);
  5. ?>


Mam 16 przedmiotów ten kod
  1. <?php
  2. $suma = array_sum($ilosc);
  3. ?>
dodaje mi wszystkie zmienne z tablicy (gdy jest kreska dodaje 0).

  1. <?php
  2. $srednia = $suma / count($ilosc);
  3. ?>
to, sumę dzieli przez ilość zmiennych w tablicy, ale gdy jeden przedmiot wstawię jako "-" chce żeby dzieliło mi sumę przez 15, dwa 14 itd. Więc trzeba napisać zmienną która usuwa z tablicy "-" (chyba chodzi o "unsert"). Jak zastosować funkcję "unsert", albo inną funkcję żeby usuwało mi z tablicy $ilość wartość "-".

Ten post edytował kamil18 14.05.2009, 18:58:07
Go to the top of the page
+Quote Post
Crozin
post 14.05.2009, 18:57:53
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Iterujesz po tablicy (foreach" title="Zobacz w manualu PHP" target="_manual) i jeżeli wartość == "-" to usuwasz dany element (unset" title="Zobacz w manualu PHP" target="_manual)
Go to the top of the page
+Quote Post
JoShiMa
post 15.05.2009, 12:34:30
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Użyłabym array_search do wygenerowania tablicy zawierającej klucze pod którymi jest wartość '-' albo stworzyła jednoelementową tablicę zawierającą '-' a następnie wykorzystałabym array_diff().


--------------------
Go to the top of the page
+Quote Post
melkorm
post 15.05.2009, 13:56:53
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. <?php
  2. $array = array(1,2,3,4,5,6,7,'-','-','-','-');
  3. foreach($array as $val) {
  4.    is_numeric($val) ? $new[] = $val : '';
  5. }
  6. var_dump($new);
  7. ?>

snitch.gif


Zadziała dla całej reszty znaków, nie tylko '-' winksmiley.jpg ,ale już 2e5 przejdzie winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
kamil18
post 15.05.2009, 16:18:56
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 14.05.2009

Ostrzeżenie: (10%)
X----


Dzięki JoShiMa twój pomysł z array_diff pomógł.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:54