Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co Zrobić Gdy Nie Mogę Użycć Array_change_key_case
Forum PHP.pl > Forum > PHP
Dynuel
chcę użyć array_change_key_case() , ale na serwerze nie mam pakietu wymaganego do jej działania, macie jakiś pomysł jak to roziązać??
kszychu
NIe może być! Toć to standardowa funkcja..... No ale jeśli się nie da, to pokombinuj z array_keys() i strtoupper() / strtolower().
mike
Może ci nie działać, jak masz starszą wersję php.
Cytat("manual")
array_change_key_case

(php 4 >= 4.2.0, php 5)

Pewnie masz starsze niż 4.2.0.

Jak nie działa, to napisz swoje, np. tak:
  1. <?php
  2. function my_array_change_key_case( $arrTablica, $strMode = &#092;"LOWER\" )
  3. {
  4. $arrResult = array();
  5. foreach( $arrTablica as $mixKey => $mixValue )
  6. {
  7. switch( $strMode )
  8. {
  9. case &#092;"LOWER\" : $arrResult[ strtolower( $mixKey ) ] = $mixValue;
  10.  break;
  11. case &#092;"UPPER\" : $arrResult[ strtoupper( $mixKey ) ] = $mixValue;
  12.  break;
  13. }
  14. }
  15. return $arrResult;
  16. }  
  17.  
  18. ?>

Nie testowałem ale powinno działać.
rogrog
myślę że to jest odpowiednie miejsce do użycia zmiennych funkcji : nie musimy za każdym przebiegiem pętli sprawdzać warunku, tylko raz

  1. <?php
  2. function my_array_change_key_case( $arrTablica, $strMode = &#092;"LOWER\" )
  3. {
  4.  
  5. switch( $strMode )
  6. {
  7.  case &#092;"LOWER\" : $funkcja = 'strtolower';
  8.  break;
  9.  case &#092;"UPPER\" : $funkcja = 'strtoupper';
  10.  break;
  11. }
  12.  
  13. $arrResult = array();
  14.  
  15. foreach( $arrTablica as $mixKey => $mixValue )
  16. {
  17.  $arrResult[ $funkcja( $mixKey ) ] = $mixValue;
  18. }
  19.  
  20. return $arrResult;
  21.  
  22. }  
  23.  
  24. ?>
Dynuel
ok rozwiązałem to,

aco do waszych skryptów to:

znacie php tak dobrze że chyba nie potraficie pisać skryptu bez skomplikowanych funkcji lub po prostu lubicie utrudniać sobie życie smile.gif hehe

ja zrobiłem to tak:
  1. <?php
  2.  
  3. while (list ($numer_rekordu_id, $wartosc_z_tablicy) = each ($tablica_linki))
  4. {
  5. $tablica_linki[$numer_rekordu_id] = strtoupper($wartosc_z_tablicy);
  6. }
  7.  
  8. ?>

zapewne jest to bardziej prymitywna metoda lecz prostsza

proste, logiczne, symetryczne
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.