Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Masowane dodawanie do tablicy
Forum PHP.pl > Forum > PHP
Cinamicom
Witam mam x imion w txt w formacie:

  1. kamil
  2. jan
  3. stasiek
  4. janek
  5. jasiu
  6. itp.


Chcę to dodać do tablicy jakoś automatycznie, żeby było $imiona[];
Jak mogę to zrobić automatycznie? bo imion mam sporo
Kshyhoo
Lecisz pętlą, linia po linii a każda linia to element tablicy smile.gif
Cinamicom
moglbys dac przyklad?
ghost1511
spróbuj za pomocą file_get_contents i explode
Wazniak96
Wystarczy file smile.gif
  1. <?php
  2.  
  3. $contents = file("test.txt");
  4. print_r($contents);
Cinamicom
Ale to mi da liste, a ja chcę to mieć w tablicy, każde imie osobno
Kshyhoo
Cytat(Cinamicom @ 25.01.2014, 12:20:24 ) *
Ale to mi da liste, a ja chcę to mieć w tablicy, każde imie osobno

file() - przeczytaj, co masz na wyjściu...
kamioool
A jak bedzie wygladac to w przypadku gdybym chciał zapisać dane z textarea ($_post).
Mam dane w formacie
[data] nazwa liczba
np:

Cytat
[2014-02-05 13:24:52] Stolik 23
[2014-02-03 10:13:55] Lampka 22
[2014-02-01 09:28:49] Sofa 33
[2014-01-22 13:24:52] Stolik 43
[2014-01-11 10:13:55] Lampka 42
[2014-01-03 09:28:49] Sofa 12
[2014-01-01 13:24:52] Stolik 1


Chciał bym aby po wklejeniu tego w formularzu strony dało sie utworzyc krotkie zestawienie - np. zsumować liczby dla Stolik lub wyliczyc srednia

Cytat
Stolik 67
Pyton_000
$_POST, explode, preg_match
kamioool
Tyle ze zdazaja sie tam nazwy dwuczłonowe np. oraz liczba jest zapisana w formacie odczielajacym setki
Cytat
[2014-01-11 10:13:55] Lampka Nocna1 420 000
[2014-01-11 10:13:55] Lampka Nocna3 234 123


Musiał bym podzielic to na 3 elementy przefiltrować i odpowiednio przypisać dane.

Data (format daty) | Nazwa (string pomieszany z int)| Cena (tylko int)

@Edit
Prosze o jakis przyklad bo ciezko mi tak na sucho i nie wiem od czego sie zabrać.

@down

Cytat(mar1aczi @ 19.02.2014, 15:04:14 ) *
To masz dane wyświetlane, ale czy w bazie nie masz przypadkiem zapisanego identyfikatora przedmiotu...


Dane sa tekstem, w takiej postaci jak zaznaczyłem wyżej.
mar1aczi
To masz dane wyświetlane, ale czy w bazie nie masz przypadkiem zapisanego identyfikatora przedmiotu...
markuz
Data w twoim przypadku ma stały rozmiar tzn. wystarczy substr. Następnie robisz explode (oddzielone spacją). Sprawdzasz je w pętli. Jeśli zmienna jest INT to znaczy, że to liczba, jeśli STRING to nazwa, jeśli masz więcej niż 1 INT wtedy je łączysz za pomocą $int = $pierwszy_int.$drugi_int; Podobnie z nazwą jeśli jest String wtedy łączysz nazwę z kilku elementów.

Chyba, że masz takie linijki: [2014-01-11 10:13:55] Lampka Nocna 3 234 123
Wtedy 3 234 123 zaliczysz do liczb.

Wszystko zależy od tego jakie dokładnie dane są w pliku.
Pyton_000
Konkretne elementy powinny być rozdzielone jakimś znakiem unikalnym
kamioool
Cytat(markuz @ 19.02.2014, 15:09:38 ) *
Data w twoim przypadku ma stały rozmiar tzn. wystarczy substr. Następnie robisz explode (oddzielone spacją). Sprawdzasz je w pętli. Jeśli zmienna jest INT to znaczy, że to liczba, jeśli STRING to nazwa, jeśli masz więcej niż 1 INT wtedy je łączysz za pomocą $int = $pierwszy_int.$drugi_int; Podobnie z nazwą jeśli jest String wtedy łączysz nazwę z kilku elementów.

Chyba, że masz takie linijki: [2014-01-11 10:13:55] Lampka Nocna 3 234 123
Wtedy 3 234 123 zaliczysz do liczb.

Wszystko zależy od tego jakie dokładnie dane są w pliku.


A w jaki sposob wczytac dane wiersz po wierszu?
Kshyhoo
Cytat(kamioool @ 19.02.2014, 15:16:51 ) *
A w jaki sposob wczytac dane wiersz po wierszu?

No kolego, 6 lat na Forum, to chyba to powinieneś umieć? A jak nie, jest szukajka...
kamioool
Cytat(Kshyhoo @ 19.02.2014, 15:31:25 ) *
No kolego, 6 lat na Forum, to chyba to powinieneś umieć? A jak nie, jest szukajka...


Data zalozenia konta nie swiadczy o mojej wiedzy, a co do "szukajki" chyba z niej skorzystalem skoro podpinam sie pod ten temat.
Kshyhoo
Cytat(kamioool @ 19.02.2014, 16:19:06 ) *
Data zalozenia konta nie swiadczy o mojej wiedzy, a co do "szukajki" chyba z niej skorzystalem skoro podpinam sie pod ten temat.

Zgadzam się z pierwszą częścią Twojej wypowiedzi. Co do drugiej części, to wydaje mi się, że podpiąłeś się pod dobry temat, ale kompletnie zły wątek wink.gif Tyle przykładów a Ty akurat wybrałeś ten, bez przykładowego kodu.
kamioool
Cytat(Kshyhoo @ 19.02.2014, 16:24:06 ) *
Zgadzam się z pierwszą częścią Twojej wypowiedzi. Co do drugiej części, to wydaje mi się, że podpiąłeś się pod dobry temat, ale kompletnie zły wątek wink.gif Tyle przykładów a Ty akurat wybrałeś ten, bez przykładowego kodu.


To nadal nie jest odpowiedzią na mój problem.
markonix
explode i jako separator enter.
markuz
  1. $filename = 'data.txt';
  2. $fp = fopen($filename, 'r');
  3. if ($fp) $array = explode("\n", fread($fp, filesize($filename)));
kamioool
Cytat(markuz @ 20.02.2014, 08:56:20 ) *
  1. $filename = 'data.txt';
  2. $fp = fopen($filename, 'r');
  3. if ($fp) $array = explode("\n", fread($fp, filesize($filename)));

Jesli odpowiedz dotyczyla mnie, to mialem namysli przekazywanie danych z formularza przez $_post
Korzystajac z Twojego przykłądu zrobiłęm cos takiego



Cytat
Linia 0 zwraca [2014-01-11 10:13:55] Lampka Nocna1 420 000
Linia 1 zwraca [2014-01-11 10:13:55] Lampka Nocna22 234 123
Linia 2 zwraca [2014-01-11 10:13:55] Lampka Nocna1 420 000
Linia 3 zwraca [2014-01-11 10:13:55] Lampka Nocna4 234 123
Za?adowano 4 wierszy


  1. if (isset ($_POST['form'])) {
  2. $textInput = $_POST['form'];
  3. $array = explode("\n", $textInput);
  4. $i = 0;
  5. foreach ($array as $v) {
  6. echo "Linia ". $i ." zwraca ". $v .' <br />';
  7. $i++;
  8. }
  9. echo " Załadowano " . count($array) . " rekordów";
  10. }
  11. ?>


Dalej musze wymyslic sposob jak przefiltrować konkretny wiersz, podzielic go na 3 czesci
Data (format daty) | Nazwa (string pomieszany z int)| Cena (tylko int)
i zapisać dane tak aby pozniej dało sie je zsumować. Najlepiej było bo to zindeksować po nazwie ... hymm?
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.