Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmienna -> tablica
Forum PHP.pl > Forum > Przedszkole
japek
Jak pobrać dane ze zmiennej (kilka tyś. liczb) do tablicy?
mike
Daj przykład bo chyba nie czaję.
Jak wygląda ta zmienna?
japek
Wartość zmiennej po wyświetleniu to np. 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.4 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.2 46.2 46.2 46.2 46.2 46.2 46.1 46.1 46.1 46.2 46.2 46.2 46.1 itp... i chciałbym te liczby jakoś do tablicy powrzucać aby było "46.3", "46.3", ...
nospor
http://pl.php.net/manual/pl/function.explode.php
spojrz w przyklad

ps: przenosze na przedszkole
ps2: na przyszlosc probujemy sami w manualu znaleźć smile.gif

edit:
wlasnie znalazlem identyczny niemalze Twoj topic....
Cytat
Potrzebuje rozbić plik tekstowy, w którym dane są oddzielone spacją, czy da sie to zrobić za pomocą explode?
Podzieliłem cały plik na linie i teraz dalej musze to rozbić ale explode potrzebuje chyba jakiegośznaku a ja mam spacje - czy tylko substr to potrafi? HELP
I do niego dostales wlasnie rozwiązanie. jaja se robisz?
japek
Nie bo to mi coś nie chce działać mimo że robie jak trzeba, bez błędu. Tak to nawet bym tu nie zaglądał gdyby działało. Nie wiem czy problem nie tkwi w tym, że mimo iż wyświetlany ciąg znaków posiada 1 spację to explode tego nie chce rozbić. Może tak być?
nospor
Ale co ci tu nie dziala?
  1. <?php
  2. $zm = '46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.3 46.4 46.3 46.3 46.3 46.3 46.3 46.3 
    46.3 46.2 46.2 46.2 46.2 46.2 46.2 46.1 46.1 46.1 46.2 46.2 46.2 46.1'
    ;
  3.  
  4. echo '<pre>';
  5. $ar = explode(' ', $zm);
  6. print_r($ar);
  7. echo '</pre>';
  8. ?>

Moze reszte danych masz "zepsutą"?
japek
Dane pochodzą z pliku, wszystko jest sprawne. Rozbijam plik tekstowy na linie, potem z kazdej linii biorę kilka potrzebnych znaków (dane mam w kilku rzędach) i mam już potrzebne dane ale teraz są one w zmiennej $t8

$plik=file('1.LOG');

for($i=2; $i<30; $i++) {
$t=$plik[$i];
$t8=(substr($t, 22,6));

i jak używałem explode to nic nie działało sad.gif
nospor
uzywaj bbcode.

ale ty explode robisz w petli na $t8? Bo jak nie to za kazdym obiegiem petli ta zmienna jest nadpisywana i tracisz dane. Pokaz caly kod, pokaz przykladowych pare linii z pliku. Pamietaj rownież o tym, ze file() zwraca znaki konca wierszy.
japek
Wcześniej nie wiedziałem że to tworzy tyle tablic ile linii z pliku (dlatego myślałem że cośnie tak póki nie odpaliłem podglądu z <pre>), tylko teraz jeszcze połączyć te tablice w jedną i będzie ok.

W pętli tworzę takie tablice i chciałbym je połączyć na koniec w jedną tablicę. Nie wiem czy funkcją Merge_array się da bo nie ma konkretnych nazw tablic. Po wyświetleniu na stronie <pre> mam takie tablice (jest ich znacznie więcej):

array(1) {
[0]=>
string(4) "41.1"
}

array(1) {
[0]=>
string(4) "41.5"
}

array(1) {
[0]=>
string(4) "45.9"
}
mike
A jak tworzysz te tablice? Pokaż kod.

Skoro dajesz je do print_r() to masz nazwy zmiennych, czy nie?
japek
  1. <?php
  2. $plik=file('1.LOG');
  3.  
  4. for($i=2; $i<50; $i++) {
  5. $t=$plik[$i];
  6. $t8=(substr($t, 22,6));
  7.  
  8. $y=explode(" ", $t8);
  9. ?>
mike
Przy każdym obrocię pętli wstawiaj sobie aktualną tablicę do jakiejś innej - zbiorczej.
array_push()

Zakładam, że w Twoim kodzie klamra, która zgubiłeś, jest na końcu smile.gif
nospor
@japek 3 mozliwosci:
1) uzywaj array_merge w petli
2) zmienna $t8 najpierw zbuduj ze wszystkich liczb a potem na niej zrob explode
2) yyy, patrzac na twoj print_r widac, ze zawsze tam jest jeden element, czyli jedna liczba. to na grzyba bawic sie w explode? skoro tam jest jedna liczba to nie trzeba nic dzielic tylko ja zapisywac do tablicy:
  1. <?php
  2. $tab = array();
  3. for($i=2; $i<50; $i++) {
  4. $t=$plik[$i];
  5. $t8=(substr($t, 22,6));
  6. $tab[] = $t8;
  7. }
  8. ?>
japek
Wszystko racja smile.gif jak zwykle kombinowałem niepotrzebnie i sie w tym pogubiłem, ale już ok, dzięki!
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.