Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Ilość kolumn w wierszu array
.Wojtek
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Poniżej widać kod, który odczytuje dane z pliku tekstowego i wgrywa je do tablicy:
  1. $filename = "wspolrzedne_numery_dzialek.txt";
  2. $handle = fopen($filename, "r");
  3. $tab_wsp = array();
  4. if ($handle) {
  5. while (!feof($handle)) {
  6. $buffer = fgets($handle, 4096);
  7. $tab_wsp[]=explode(" ", $buffer);
  8. }
  9. fclose($handle);
  10. } else {
  11. die("Błąd otwierania pliku");
  12. }

Dane w pliku tekstowym wyglądają następująco:
Kod
3721123.08    5576123.085    158/7
3722123.952    5577123.532    468/3
3721123.972    5576123.089    162/3

Skrypt wgrywa dane do array jeśli dane są oddzielone tabulatorem.
Jak natomiast wgrać dane w takim formacie:

liczby X,Y X,Y X,Y X,Y X,Y X,Y X,Y X,Y X,Y np.
Kod
123,234 273,223 538,238 237,213 414,133
193,273 283,842 294,382

Czyli mamy dwa główne wiersze, będące osobnymi array. Potem w każdym z wierszy mamy po kilka par liczb (X i Y) oddzielonych między parami spacją, a między sobą przecinkiem. Chciałbym uzyskać coś takiego:

Kod
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 123
                    [1] => 234
                )

            [1] => Array
                (
                    [0] => 273
                    [1] => 223
                )

            [2] => Array
                (
                    [0] => 538
                    [1] => 238
                )

            [3] => Array
                (
                    [0] => 237
                    [1] => 213
                )

            [4] => Array
                (
                    [0] => 414
                    [1] => 133
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => 193
                    [1] => 273
                )

            [1] => Array
                (
                    [0] => 283
                    [1] => 842
                )

            [2] => Array
                (
                    [0] => 294
                    [1] => 382
                )

        )

)


Ten post edytował .Wojtek 23.02.2014, 16:06:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
jacobson
post
Post #2





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

Ostrzeżenie: (0%)
-----


Najpierw musisz zrobic explode po znaku nowej linii "\n", nastepnie po "," zeby miec wszystkie rekordy poukladane. Zeby je poustawiac "dwójkami" przyda Ci sie funkcja array_chunk (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
.Wojtek
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Tu znalazłem odpowiedź:

http://pl1.php.net/explode#99167
Go to the top of the page
+Quote Post
.Wojtek
post
Post #4





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Poniższa tablica ma 2 główne podziały i pierwszy podział ma kolejnych 5, a drugi ma trzy. Jak pozyskać te liczby? Liczbę wierszy uzyskuje się komendą count, ale jak uzyskać ilość, tak jakby kolumn w danym wierszu? (zdaję sobie sprawę, że mówienie tutaj o wierszach i kolumnach jest nie na miejscu, ale chyba wiecie o co mi chodzi).
Kod
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 123
                    [1] => 234
                )

            [1] => Array
                (
                    [0] => 273
                    [1] => 223
                )

            [2] => Array
                (
                    [0] => 538
                    [1] => 238
                )

            [3] => Array
                (
                    [0] => 237
                    [1] => 213
                )

            [4] => Array
                (
                    [0] => 414
                    [1] => 133
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => 193
                    [1] => 273
                )

            [1] => Array
                (
                    [0] => 283
                    [1] => 842
                )

            [2] => Array
                (
                    [0] => 294
                    [1] => 382
                )

        )

)


Ten post edytował .Wojtek 23.02.2014, 18:29:50
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #5





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Chodzi Ci o coś takiego?

  1. $columns = array_map(
  2. function ($row) {
  3. return count($row);
  4. },
  5. $array
  6. );


Zakładając, że $array to Twoja tablica wejściowa.
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. $a = count($myArray[0]);
  2. $b = count($myArray[1]);
?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jeden wątek wystarczy, łączę tematy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 19:57