Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Konwersja tablicy
-flymo-
post
Post #1





Goście







Witam

Mam tablicę pobraną z pliku:
  1. $file = file('memory.txt');
  2.  
  3. (
  4. [0] => d3 ea d3 e9 d3 e8 d3 e7 d3 ea d3 e9 d3 e9 d3 e8
  5. [1] => d3 e7 d3 e7 d0 00 d0 00 d0 00 d0 00 d0 00 d0 00
  6. [2] => d0 00 d0 00 d0 00 d0 00 d0 00 d0 00 d0 00 d1 00
  7. [3] => d1 00 d1 00 d1 00 d1 00 d1 00 d1 00 d1 00 d1 00
  8. [4] => d1 00 d1 00 d1 00 d1 00 d1 00 d1 00 d1 00 d1 00
  9. [5] => d1 00 d1 00 d1 00 d1 00 d1 01 d1 00 d1 08 d1 08
  10. )


Chciałbym ją przekonwertować aby efekt był taki
  1. $tab[0][0] //zawiera d3ea
  2. $tab[0][1] //zawiera d3e9
  3. $tab[0][2] //zawiera d3e8
  4. .
  5. $tab[1][0] //zawiera d3e7
  6. $tab[1][1] //zawiera d3e7


Jak można to zrobić(IMG:style_emoticons/default/questionmark.gif) bardzo proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ethann
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 18
Dołączył: 7.04.2012

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


albo do tego co już masz dopisz 2 pętle na końcu, czyli połączyć ze sobą każde 3 kolejne elementy.
  1. $countdata = count($data);
  2. $newdata = array();
  3. for($i=0; $i<$countfile; $i++) {
  4. for($j=0; $j<$countdata; $j+=3) {
  5. $newdata[$i][$j/3] = $data[$i][$j].$data[$i][$j+1].$data[$i][$j+2];
  6. }
  7. }


postanowiłem zrobić to samo na szybko:
  1. <?php
  2. $file = file('file.txt');
  3. for($i=0; $i<$countfile; $i++) {$file[$i] = trim($file[$i]);}
  4. $countfile = count($file);
  5. //var_dump($file);
  6. $data = array();
  7. foreach($file as $k => $v) {$data[$k] = explode(' ', $v);}
  8. $countdata = count($data);
  9. //var_dump($data);
  10. $newdata = array();
  11. for($i=0; $i<$countfile; $i++) {
  12. for($j=0; $j<$countdata; $j+=3) {
  13. $newdata[$i][$j/3] = $data[$i][$j].$data[$i][$j+1].$data[$i][$j+2];
  14. }
  15. }
  16.  
  17. var_dump($newdata);
  18. ?>



#edit
Kod nie posiada zabezpieczeń czyli jak masz włączone warningi to możesz się niemile zaskoczyć w przypadku nieodpowiedniej ilości wyników w linii. Głównie chodzi o ten fragment:
  1. $newdata[$i][$j/3] = $data[$i][$j].$data[$i][$j+1].$data[$i][$j+2];


Ten post edytował ethann 10.04.2012, 13:21:25
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 16:25