Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [funkcja] array_combine
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Spirit86
Napisałem funckje, może się komuś przyda. Odsyłam do manuala array_combine" title="Zobacz w manualu php" target="_manual
  1. <?php
  2. if(!function_exists('array_combine'))
  3. {
  4.  
  5.  function array_combine($FirstArray, $SecondArray)
  6.  {
  7.     
  8.     $FirstArray = merage_array($FirstArray);
  9.     $SecondArray = merage_array($SecondArray);
  10.     
  11.     if(is_array($FirstArray) AND is_array($SecondArray))
  12.     {
  13.     
  14.         $ReturnArray = array();
  15.         for($i=0;$i<count($FirstArray);$i++)
  16.         {
  17.              $ReturnArray[$FirstArray[$i]] = $SecondArray[$i]; 
  18.         }
  19.  
  20.         return $ReturnArray;       
  21.     }
  22.     else
  23.     {
  24.       return false;
  25.     }
  26.  } 
  27. function merage_array($array, $Mode=1)
  28. {
  29.   //Modes: 1->Return Values; 2->Return Keys
  30.   $RetArray = array();
  31.   foreach($array AS $key =>$value)
  32.   {
  33.      $RetArray[] = ($Mode==1) ? $value : $key; 
  34. }
  35. return $RetArray;
  36. }
  37. ?>

Pozdrawiam
nospor
funkcję merage_array() mozna swobodnie zastąpić poprzez:
array_values() oraz array_keys(). A juz w Twoim przypadku, wystarczy tylko ta pierwsza.

A co w przypadku, gdy tablice mają rozną liczbę elementów? Twoja funkcja tego nie rozpatruje. Proponuje więc samemu zajrzeć do linka, który nam daleś winksmiley.jpg
kszychu
Jeżu kolczasty! A coś Ty tu nawypisywałquestionmark.gifexclamation.gif Komentarzy do array_cobmine żeś nie czytał?
POlecam zwłaszcza drugi: Twój kod jest tam zastąpiony trzema (exclamation.gif!) linijkami.

Chociaż osobiście zamknąłbym go jeszcze tylko w warunku if(count($tablica1) == count($tablica2)), bo tylko dla takiego przypadku działa array_combine().
mike
Cytat(kszychu @ 2006-03-24 16:45:42)
Chociaż osobiście zamknąłbym go jeszcze tylko w warunku if(count($tablica1) == count($tablica2)), bo tylko dla takiego przypadku działa array_combine().

Nie ma potrzeby:
Cytat(array_combine)
Zwraca FALSE jeśli liczba elementów tablic wejściowych nie są równe, lub jeśli jedna lub obie z tablic są puste.
kszychu
Cytat(array_combine)
Zwraca FALSE jeśli liczba elementów tablic wejściowych nie są równe, lub jeśli jedna lub obie z tablic są puste.

Dlatego też w przykładzie z manuala, o którym pisałem, a który miałby zastąpić funkcję array_combine
Cytat(kszychu @ 2006-03-24 16:45:42)
zamknąłbym go jeszcze tylko w warunku if(count($tablica1) == count($tablica2)), bo tylko dla takiego przypadku działa array_combine().
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.