Camping_RIDER: Werte gruppieren anhand von einem gemeinsamen Wert

Beitrag lesen

Aloha ;)

Mir ist klar, das dieser Code schnell bei vielen Datenmengen in die Knie gehen kann, gibt es schönere Lösungen?

Ich kann dir nur anbieten, wie ich das lösen würde:

function flip_array_2dim ($array) {  
  
    $ret = Array();  
  
    foreach ($array as $userid => $subarr) {  
  
        foreach ($subarr as $ip) {  
  
            if (!isset($ret[$ip])) {  
  
                $ret[$ip] = Array();  
  
            }  
  
            $ret[$ip][] = $userid;  
  
        }  
  
    }  
  
    return $ret;  
  
}

Die Funktion bekommt dann ein zweidimensionales $array gefüttert, das etwa die folgende Struktur hat (Pseudocode):

$array = Array(... userid1 => Array(ip1,ip2,...) ...)

und gibt ein Array (in der Funktion $ret genannt) zurück in der Form

$ret = Array(... ip1 => Array(userid1,userid2,...) ...)

Bin gespannt, ob das dein Problem nicht etwas vereinfacht. Das war das, woran ich zunächst gedacht hatte. Ansonsten ist dein Weg denke ich schon gut, viel einfacher wird es kaum gehen. (Denn ein solches Matching ist immer aufwendig) Mir zumindest fällt sonst auch nicht viel ein.

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[