Może czepiam się szczegółów, ale poprzedni przykład zlicza
liczby, a Ty chcesz zliczać
cyfry (przynajmniej tak napisałeś).
Przy okazji chciałem pokazać jak obyć się bez własnych pętli.
Proponuję coś takiego:
<?php
// Dane źródłowe
// Kumuluj znaki w $tt (callback)
function join_chr($value, $key) {
global $tt; // tu kumulujemy znaki $tt .= $value;
}
// Wydruk klucz / wartość (callback)
function prt_chr($item, $key) {
echo chr
($key) . " => $item<br />"; }
// Kumuluj znaki z $tablica
array_walk_recursive($tablica, 'join_chr');
echo "tt: $tt<br />"; // Produkt połąćzenia
echo "Wystąpienia cyfr:<br />"; ?>
Jest to zarazem przykład, że:
- nie musisz robić własnej pętli "chodzącej" po tablicy, załatwia to
array_walk,
- zliczanie
znaków też możesz załatwić dedykowaną funkcją.
Uwaga: count_chars daje w wyniku tablicę, w której kluczami są
kody znaków, dlatego potem przy wydruku trzeba je "przerobić" na znaki (chr(...)).
Oczywiście - nic za darmo, trzeba dopisać funkcje callback.
Per saldo - chyba się opłaca.
"Właściwy" program jest króciutki. Żadnych pętli, a wszystkie 3 operacje:
- skumulowanie znaków,
- zliczenie częstości,
- wydruk wyniku
wykonujesz pojedynczymi instrukcjami.