Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Hurtowa zamiana danych w tablicy
Forum PHP.pl > Forum > Przedszkole
Jarod
Mam tablicę $tablica, której kolejne elementy to wartości Tak, lub Nie.

Jak w miarę szybko zamienić w tej tablicy elementy Tak na 1 a elementy Nie na 0?

Myślałem o jakimś prem_match ale nie mogę tego załapać. Chciałbym uniknąć kopiowania w pętli for() danych do innej tablicy i w locie sprawdzać ifami..
mike
1. Prosze poprawić temat wątku. Nie jest on zgodny z Zasadami pisani na forum Przedszkole.
2. array_walk()
  1. <?php
  2.  
  3. function zamiana( &$strElement )
  4. {
  5. if( $strElement == 'Tak' )
  6. {
  7. $strElement = 1;
  8. }
  9. elseif( $strElement == 'Nie' )
  10. {
  11. $strElement = 0;
  12. }
  13. }
  14.  
  15. $arrTab = array( 'Tak', 'Tak', 'Nie', 'Nie', 'Tak', 'Nie' );
  16. echo '<pre>' . print_r( $arrTab, true ) . '</pre>';
  17.  
  18. array_walk( $arrTab, 'zamiana' );
  19.  
  20. echo '<pre>' . print_r( $arrTab, true ) . '</pre>';
  21.  
  22. ?>
Jarod
Temat poprawiony. Dziękuje. A preg_match nie da się szybciej? Żeby okroić jeszcze kod?
mike
Chcesz szybciej czy mniej kodu?
Bo tak się składa że te dwa pojęcia nie ide zawsze w parze.

Może i można wyrażeniami regularnymi ale na pewn będzie dlużej.
Tak jak powyżej jest chyba najszybciej.

A poza tym: czy to jest dużo kodu:
  1. <?
  2.  
  3. function zamiana( &$strElement )
  4. {
  5. if( $strElement == 'Tak' )
  6. {
  7. $strElement = 1;
  8. }
  9. elseif( $strElement == 'Nie' )
  10. {
  11. $strElement = 0;
  12. }
  13. }
  14.  
  15. $arrTab = array( 'Tak', 'Tak', 'Nie', 'Nie', 'Tak', 'Nie' );
  16.  
  17. array_walk( $arrTab, 'zamiana' );
  18.  
  19. ?>
Jarod
Cytat(mike_mech @ 10.07.2006, 15:58 ) *
Chcesz szybciej czy mniej kodu?
Bo tak się składa że te dwa pojęcia nie ide zawsze w parze.


Wiem, że szybciej nie znaczy mniej kodu. Skoro mówisz, że jest szybciej to wierze smile.gif.

Okroiłem jeszcze
  1. <?php
  2. function zamianaUprawnien( &$elementTab )
  3. {
  4. if( $elementTab == 'Tak' ) $elementTab = 1;
  5. else $elementTab = 0;
  6. }
  7. ?>


Jeszcze raz dziękuje.
kwiateusz
w zasadzie można by i tak

  1. <?php
  2.  
  3. function zamiana( &$strElement )
  4. {
  5. $strElement = ($strElement == 'Tak') ? 1 : 0;
  6. }
  7.  
  8. $arrTab = array( 'Tak', 'Tak', 'Nie', 'Nie', 'Tak', 'Nie' );
  9.  
  10. array_walk( $arrTab, 'zamiana' );
  11.  
  12. ?>
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.