Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> porzadkowanie tablic
Hpsi
post
Post #1





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Witam znowu mam problema z tablicami tym razem mam sobie taką tablice
Kod
Array
(
    [0] => Array
        (
            [subjects] => 13
            [0] => 13
        )

    [1] => Array
        (
            [subjects] => 12
            [0] => 12
        )

    [2] => Array
        (
            [subjects] => 9
            [0] => 9
        )

    [3] => Array
        (
            [subjects] => 9
            [0] => 9
        )

)

no i musze uporzadkowac ją w ten sposób by wyrzucić powstarzające sie indexy (subjects) o takim samym id... jak to zrobic ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





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




bez przesady. pierwsza z brzegu:

  1. <?php
  2.  
  3. function array_distinct ($array, $group_keys, $sum_keys = NULL, $count_key = NULL){
  4.   if (!is_array ($group_keys)) $group_keys = array ($group_keys);
  5.   if (!is_array ($sum_keys)) $sum_keys = array ($sum_keys);
  6.  
  7.   $existing_sub_keys = array ();
  8.   $output = array ();
  9.  
  10.   foreach ($array as $key => $sub_array){
  11.    $puffer = NULL;
  12.    #group keys
  13.    foreach ($group_keys as $group_key){
  14.      $puffer .= $sub_array[$group_key];
  15.    }
  16.    $puffer = serialize ($puffer);
  17.    if (!in_array ($puffer, $existing_sub_keys)){
  18.      $existing_sub_keys[$key] = $puffer;
  19.      $output[$key] = $sub_array;
  20.    }
  21.    else{
  22.      $puffer = array_search ($puffer, $existing_sub_keys);
  23.      #sum keys
  24.      foreach ($sum_keys as $sum_key){
  25.        if (is_string ($sum_key)) $output[$puffer][$sum_key] += $sub_array[$sum_key];
  26.      }
  27.      #count grouped keys
  28.      if (!array_key_exists ($count_key, $output[$puffer])) $output[$puffer][$count_key] = 1;
  29.      if (is_string ($count_key)) $output[$puffer][$count_key]++;
  30.    }
  31.   }
  32.   return $output;
  33. }
  34.  
  35. //uzycie:
  36.  
  37. $array = array();
  38. $array[0]['subjects'] = 1;
  39. $array[0][0] = 1;
  40. $array[1]['subjects'] = 2;
  41. $array[1][0] = 2;
  42. $array[2]['subjects'] = 3;
  43. $array[2][0] = 3;
  44. $array[3]['subjects'] = 3;
  45. $array[3][0] = 3;
  46.  
  47. $array = array_distinct ($array, array('subjects'));
  48.  
  49.  
  50. ?>


nastepnym razem szukaj lepiej, bo mogą się warny posypac za lenistwo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
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: 5.10.2025 - 11:44