Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][array][string]string na cyfry. suma cyfr w dlugiej liczbie.
Forum PHP.pl > Forum > Przedszkole
visine
Witam!
Mam problem.
Zastanawiam się jak napisać pętlę i jaką aby ze stringu wybierala po koleji cyferki z liczby i mnożyłą je przez elementy innej tablicy. ok to nie wydaje sie trudne. tab1[1]*tab2[1] itd.
kolejny krok to zsumowanie wszystkich juz elementow tyle ze jezeli mam 10 to licze 1+0, jezeli 17 to 1 +7. i tu jest moj problem.
Problem dotyczy wallidacji sum kontrolnych. szukalem ale nie znalazlem nic co by mnie satysfakcjonowalo.
macie cos ?
pozdro dla wszystkich
party.gif
Ziels
$string = '12345';
$arr = explode('', $string);
^
Tablicę cyfr dostaniesz

$cyfra = $arr[1] . $arr[2];
^
Otrzymasz 23

Pozdrawiam
Sabistik
Cytat
$string = '12345';
$arr = explode('', $string);

Głupota - string

~visine Popraw topic zgodnie z zasadami forum przedszkole.
siemakuba
Cytat(visine @ 8.12.2006, 02:03:21 ) *
kolejny krok to zsumowanie wszystkich juz elementow tyle ze jezeli mam 10 to licze 1+0, jezeli 17 to 1 +7. i tu jest moj problem.

Chodzi o zsumowanie wszystkich cyfr z liczby? np. dla liczby 184 wynik = 1+8+4?

Najlepiej chyba, jak napisał Ziels sprowadzić sobie to do tablicy i trzymać każdą składową cyfrę jako element tablicy. No i dalej to już prosto:

  1. <?php
  2. $str = '184';
  3. $arr = explode('', $str);
  4. $sum = array_sum($arr);
  5. ?>


edit:
Cytat
Głupota - string
Sabistik: nie rozumiem. Skoro można użyć explode, to po co tworzyć pętle i iterować przez string? W pętli dodatkowo wykonywać operacje na danych. Opcja z explode wydaje się szybsza i skuteczniejsza, przynajmniej w przypadku sumowania.

pozdr.
Saddam92
a czy dla tablicy $arr nie trzeba zmienić typu ze string na float/double questionmark.gif
Sabistik
~Siemakuba: a sprawdzałeś czy takie explode w ogóle zadziała? <:
siemakuba
@Sabistik: kurcze, oczywiście masz rację. Nie działa. To nawet wcale nie jest dziwne. Dziwne jest, że wydało mi się że to zadziała. A jeszcze dziwniejsze, że zanim sprawdziłem to mógłbym przysiąc: "działa! wiele razy tak robiłem!" To jedna z tych rzeczy, których niby-oczywistość zasłania ich bzdurność :)

pozdr.
mafio69
Trzeba policzyć (strlen) a potem w pętli porozdzielać (substr) i przypisać do zmiennej tablicowej a policzenie to już nie problem też w pętli smile.gif tak bym zrobił ale dopiero się uczę więc może za długi sposób snitch.gif
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.