Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CSV rozbicie tabeli w pętli i dodanie wartości
Forum PHP.pl > Forum > PHP
winiar789
Czołem drodzy przyjaciele,

Mam o to sobie CSV :

Z661-05639;PLN; Exchange Price; 235.38
Z661-05639;PLN; Stock Price; 215.38

i to w array mam sobie tak:

  1.  
  2.  
  3. [12] => Array
  4. (
  5.  
  6. [0] => Z661-05639
  7. [1] => PLN
  8. [2] => Exchange Price
  9. [3] => 235.38
  10.  
  11. )
  12.  
  13. [13] => Array
  14. (
  15.  
  16. [0] => Z661-05639
  17. [1] => PLN
  18. [2] => Stock Price
  19. [3] => 215.38
  20.  
  21. )
  22.  
  23.  


i co chce zrobić , chce to sobie połączyć o tak -


  1.  
  2.  
  3. [12] => Array
  4. (
  5.  
  6. [0] => Z661-05639
  7. [1] => PLN
  8. [2] => Exchange Price
  9. [3] => 235.38
  10. [4] => Stock Price
  11. [5] => 215.38
  12.  
  13.  
  14. )
  15.  



Będę wdzięczny za pomoc exclamation.gif biggrin.gif smile.gif

SmokAnalog
Chcesz pogrupować po zawartości pierwszej kolumny? Czy ten identyfikator może być czymś innym?

Format danych, który chcesz osiągnąć jest mało praktyczny, chyba że chcesz jedynie zapisać to w innym CSV.
winiar789
Dokładnie tak - ja chce dokładnie stworzyć kolejny CSV w którym te dane są pogrupowane w takiej postaci nic więcej - a że robi się to ręcznie wpadłem na pomysł zautomatyzowania tego.
SmokAnalog
Czyli zawsze liczba elementów z takim samym identyfikatorem będzie taka sama?
winiar789
Tak , idetyfikatorem jest : [0] => Z661-05639
i zawsze będzie Exchange Price i Stock Price dla numeru Z661-05639 itd. dla innych
Pyton_000
Najprościej jak się da:

Kod
<?php

$output = [];
foreach($data as $row) {
    $output[$row[0]][0] = $row[0];
    $output[$row[0]][1] = $row[1];
    $output[$row[0]][] = $row[2];
    $output[$row[0]][] = $row[3];
}

var_dump($output);
SmokAnalog
Wersja kompaktowa:

  1. $data = array_reduce($data, function ($result, $row) {
  2. return array_merge($result, [$row[0] => isset($result[$row[0]]) ? array_merge($result[$row[0]], array_slice($row, 2)) : $row]);
  3. }, []);
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.