Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablica wielowymiarowa, Problem z zapisem danych
heniek87
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.06.2011

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


Witam!
Mam tu tablicę wielowymiarową
  1. $arr = array(
  2. 1 => array(
  3. 1 => '1.1',
  4. 2 => array(
  5. 1 => 'tekst przed',
  6. 2 => array(
  7. 1 => '1.2.2.1',
  8. 2 => 8
  9. ),
  10. 3 => array(
  11. "cos" => '1.2.3',
  12. 2 => "cos innego",
  13. 3 => 8
  14. )
  15. )
  16. ),
  17. 2 => array(
  18. 1 => '2.1',
  19. 2 => 6
  20. ),
  21. 3 => array(
  22. 1 => '3.1',
  23. 2 => array(
  24. "cos" => '3.2.1',
  25. 2 => 9,
  26. 3 => 8
  27. )
  28. )
  29. );

Mój problem polega na tym że chciałbym odczytywać i edytować taką tablicę, lecz nie sposobem:
  1. echo $arr[1][2][1];
  2. $arr[1][2][1]='tekst po';

lecz;
mając zmienną np;
  1. $sciezka="1.2.1";
  2. $arr[$sciezka]='tekst po'; //powinno się odnosić do $arr[1][2][1];
  3. //oczywiście powyższy fragment kodu nie będzie działał

z odczytem sobie poradziłem, gorzej z zapisem w określonym miejscu.
Porszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Wyjęte z Kohany 2.3.4:
  1. /**
  2. * Returns the value of a key, defined by a 'dot-noted' string, from an array.
  3. *
  4. * @param array array to search
  5. * @param string dot-noted string: foo.bar.baz
  6. * @return string if the key is found
  7. * @return void if the key is not found
  8. */
  9. public static function key_string($array, $keys)
  10. {
  11. if (empty($array))
  12. return NULL;
  13.  
  14. // Prepare for loop
  15. $keys = explode('.', $keys);
  16.  
  17. do
  18. {
  19. // Get the next key
  20. $key = array_shift($keys);
  21.  
  22. if (isset($array[$key]))
  23. {
  24. if (is_array($array[$key]) AND ! empty($keys))
  25. {
  26. // Dig down to prepare the next loop
  27. $array = $array[$key];
  28. }
  29. else
  30. {
  31. // Requested key was found
  32. return $array[$key];
  33. }
  34. }
  35. else
  36. {
  37. // Requested key is not set
  38. break;
  39. }
  40. }
  41. while ( ! empty($keys));
  42.  
  43. return NULL;
  44. }
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: 7.10.2025 - 13:18