Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [funkcja] array_combine, Jak ktoś ma php <5
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


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

Ten post edytował Spirit86 20.03.2006, 18:05:12


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kszychu
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


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().


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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.
Go to the top of the page
+Quote Post
kszychu
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


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().


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:35