![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 4.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Posiadam następujący problem otrzymuje plik CSV w formie: Cytat 1;a 2;c 2;b 1;c 8;a potrzebuje przekształcić do: Cytat 1;a|c 2;c|b 8;a Cały plik posiada ok 4000 rekordów. Wiem jak wczytać i zapisać CSV aczkolwiek nie mam pomysłu na ten algorytm. Z góry dziękuje za wskazówki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
1. funkcja $csv=str_getcsv : w wyniku tego masz np. array('1'=>'a','2'=>'c','2'=>'b')
2. tworzysz nowy array: $ar=array(); 3. foreach ($ar as $key=>$val) sprawdzasz czy w nowej $ar już istnieje klucz $key, jak tak to dodajesz do niego "|$val" jak nie to tworzysz nowy $a[$key]=$val 4. zapisujesz: fputcsv Ten post edytował konrados 29.07.2012, 09:59:30 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 4.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ok napisałem działa tylko mam jakiś głupi problem z zapisem. Mój kod
I tak print_f wyswietla Cytat Array ( [NRTOW] => IDGRPN [0] => 0 [4759] => 5|49 [1] => 5|49 [2] => 49 [3] => 5|49 [4] => 5|49 [5] => 49 [6] => 49 [7] => 5|49 [8] => 5|49 [9] => 5|49 [10] => 5|49 [11] => 5|49 [12] => 5|49 [13] => 49 [14] => 5 [15] => 5|49 [16] => 5|49 [17] => 5|49 [18] => 5|49 [19] => 5|49 [20] => 5|49 [21] => 5|49 [22] => 5|49 [23] => 5|49 [24] => 5|49 [25] => 5|26|28 [26] => 5|67|1 [27] => 5|1 [28] => 5|67|1 czyli prawodłowoJak zapisuje fputcsv($fp2, $ar); to plik CSV zawiera: Cytat IDGRPN,0,5|49,5|49,49,5|49,5|49,49,49,5|49,5|49,5|49,5|49,5|49,5|49,49,5,5|49,5| Czyli same wartość. Z góry dzięki za jakieś wskazówki co robię źle.49,5|49,5|49,5|49,5|49,5|49,5|49,5|49,5|49,5|26|28,5|67|1,5|1,5|67|1, OK Działa zrobiłem to tak:
Ten post edytował big200 30.07.2012, 09:07:57 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:15 |