Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] array_flip i unikanie kolizji
nemo27
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 11.02.2003
Skąd: Mysłowice

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


Potrzebuję użyć funkcji array_flip do posortowania wyników tablicy lecz łącznie z nazwami kluczy.
Czyli:
a=3
b=2
c=1 etc.
Problem polega na tym, że jeśli znajdą się dwie nazwy o tej samej wartości np: 10 - to pozostaje tylko jej wartość bez nazwy.
Chodzi mi teraz jak rozwiązać tę kolizję tej funkcji, tzn jeśli będą dwie te same wartości to pojawiły się obie łącznie z nazwami.
  1. <?
  2. $sum_a = 12;
  3. $sum_b = 10;
  4. $sum_c = 12;
  5. $sum_d = 8;
  6. $sum_e = 9;
  7. $array = array ("suma" => $sum_a,"sumb" => $sum_b,"sumc" => $sum_c,"sumd" => $sum_d,"sume" => $sum_e);
  8.  
  9. ksort($array);
  10. $array = array_flip($array);
  11.  
  12. while (list($k,$v) = each ($array))
  13. { print ("<br>".$k."-".$v);
  14. }
  15.  
  16. ?>

Hmm

Ten post edytował nemo27 10.05.2007, 14:50:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


W commentach do array_flip znalazłem:
  1. <?php
  2. function array_invert($arr)
  3. {
  4. $res = Array();
  5. foreach(array_keys($arr) as $key)
  6. {
  7. if (!array_key_exists($arr[$key], $res)) $res[$arr[$key]] = Array();
  8. array_push($res[$arr[$key]], $key);
  9. }
  10. return $res;
  11. }
  12. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 13:40