Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Funkcja tworząca tablicę z określoną wartością.
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Witam
  1. //Funkcja która przyjmuje 2 argumenty 1 argument struktura tablicy, 2 wartość tablicy.
  2. function arr($base, $str){
  3. $base = explode(';', $base);
  4. foreach($base as $id => $val){
  5. $out[$base[$id]] = $out;
  6. }
  7. $out = $str;
  8. return $out;
  9. }
  10. //Przykładowo wprowadzę wartości grupa;tech;poziom oraz 100 następnie wywołam funkcję:
  11. print_r(arr('grupa;tech;poziom', 100));
  12. //wynikiem tego powinna być tablica:
  13. (
  14. [grupa] => Array
  15. (
  16. [tech] => Array
  17. (
  18. [poziom] => 100
  19. )
  20.  
  21. )
  22.  
  23. )

Niestety funkcja nie zwraca tak tej wartości proszę o pomoc oczywiście w 1 argumencie może być różna ilość ; np. teraz podałem 'grupa;tech;poziom' ale możne być czasem 'grupa' a czasem 'pod_grupa;tech;poziom;pod_poziom' itd.

Ten post edytował Mike122 20.03.2011, 17:14:14
Go to the top of the page
+Quote Post
desperat666
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 12
Dołączył: 19.03.2011

Ostrzeżenie: (10%)
X----


Z serii "napisałbym to tak"
  1. <?php
  2. function arr($base,$str) {
  3. $tablica = Array();
  4. $tmp = Array();
  5. // rozkoduj strukture
  6. $x = explode(";", $base);
  7. //ostatni klucz przyjmuje wartosc $str,
  8. $wartosc = array_pop($x);
  9. $tmp[$wartosc] = $str;
  10. // w tym przypadku jest to Array (c2h5oh=>100)
  11. while (count($x)!=0) {
  12. $next = Array();
  13. $klucz = array_pop($x);
  14. $next[$klucz] = $tmp;
  15. $tmp = $next;
  16. array_push($tablica,$tmp);
  17. }
  18. // kazdy kolejny klucz w $tablicy jest tu elementem tworzenia struktury, ostatni klucz to tablica o którą chodziło.
  19. return array_pop($tablica);
  20. }
  21.  
  22. print_r(arr("blada;dupa;misiu;c2h5oh", "100"));
  23.  
  24. ?>

Array ( [blada] => Array ( [dupa] => Array ( [misiu] => Array ( [c2h5oh] => 100 ) ) ) )
Mam nadzieję że pomogłem i naprowadziłem

Ten post edytował desperat666 20.03.2011, 18:22:12
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: 23.08.2025 - 15:49