Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie danej wartości z tablicy.
Forum PHP.pl > Forum > PHP
kamil18
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ść "-".
Crozin
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)
JoShiMa
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().
melkorm
  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
kamil18
Dzięki JoShiMa twój pomysł z array_diff pomógł.
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.