Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ile danych w kolumnie
Forum PHP.pl > Forum > PHP
Al
Witam,

mam w pliku tekstowym dane użytkowników: imie, nazwisko, rok urodzenia, miesjce zamieszkania, e-mail. Wyświetlam wszystko wierszami. Jak policzyć ilu użytkowników jest z danego miasta?

Dzięki za podpowiedzi.
dob
[php:1:6cbc6e10ca]<?php
$plik="plik_z_danymi.txt"
$tab=file($plik);
$cnt=count($tab);
$ile=0;

for($i=0; $i<$cnt; $i++){
$cz=explode("|*|", $tab[$i]); //wpisz poprawny separator !
if($cz[3]==$_GET['miasto']){
$ile++;
}
}

echo $ile." - tyle razy w pliku wystepuje ". $_GET['miasto'];
?>[/php:1:6cbc6e10ca]

To takie coś prostego - poprostu pobierasz plik do tablicy kazdą linie dzielisz explodem na czesci i sprawdzasz czy dana czesc jest równa zmiennej którą przekazujesz np. w adresie liczysz to i voila.


Oczywiscie to prosty przykład - zrób to sobie z jakimś bardziej rozbudowanym formularzem - zeby mozna było wybrac czego chcemy szukac (miasto , imie) i podac odpowiednik
Al
Działa jak trzeba smile.gif. Dzięki. Z dopisaniem średnika gdzie trzeba. Jak nie korzystam z formularza, po prostu podstawiam konkretną wartość.

To było rzeczywiście proste, ale mam chyba dzisiaj zaćmienie. Teraz mnie czeka sprawdzenie, dla jakich 5 miast są największe wartości. Ktoś ma pomysł ?

Pozdrawiam
FiDO
[php:1:0717020598]<?php

$plik = file("dane.txt");
array_walk($plik, create_function('&$var','list(,,$var) = explode("|*|", $var);'));
$miasta = array_count_values($plik);
arsort($miasta);

?>[/php:1:0717020598]
Teraz w tablicy $miasta masz posortowane malejaco wg ilosci wystapien wszystkie miasta.
Al
Proste, skuteczne i uniwersalne. Nie znałem funkcji array_walk. Taki zapis jest dla mnie całkiem nowy. Dzięki.

Zmieniając ustawienia przecinka przed $var można przeanalizować wszystkie dane. Czy ilość przecinków jest ograniczona czymś więcej niż ilością pól w danych?

Pozdrawiam, Al.
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.