Nur doppelte IPs wiedergeben

Dragosius

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein Array mit folgendem Ausschnitt:
PHP:
    Array
(
    [0] => Array
        (
            [mitgliedId] => 4354
            [ipAdresse] => 98.254.163.134
        )

[...]

    [281] => Array
        (
            [mitgliedId] => 2022
            [ipAdresse] => 84.139.16.50
        )

    [282] => Array
        (
            [mitgliedId] => 691
            [ipAdresse] => 84.138.69.208
        )

    [283] => Array
        (
            [mitgliedId] => 833
            [ipAdresse] => 84.138.69.208
        )

[...]

    [618] => Array
        (
            [mitgliedId] => 1830
            [ipAdresse] => 109.40.0.136
        )

)

Wie man sieht, ist die IP-Adresse "84.138.69.208" dort von bei verschiedenen "mitgliedId" doppelt vorhanden.
Wie kann ich denn jetzt am Besten nur diese "doppelten" Werte (in einer Schleife) ausgeben?
Ich würde dies gerne so als Multihunter nutzen.

Vielen Dank
 
Über eine etwas detailliertere Informationen wäre ich dankbar. :)
Leider komme so direkt nicht weiter.
 
So sollte es gehen:

PHP:
$arr = [
    ['mitgliedId' => 4354, 'ipAdresse' => '98.254.163.134'],
    ['mitgliedId' => 2022, 'ipAdresse' => '84.139.16.50'],
    ['mitgliedId' => 691, 'ipAdresse' => '84.138.69.208'],
    ['mitgliedId' => 833, 'ipAdresse' => '84.138.69.208'],
    ['mitgliedId' => 1830, 'ipAdresse' => '109.40.0.136']
];
$helparr = [];
foreach ($arr as $item) {
    if (isset($helparr[$item['ipAdresse']])) $helparr[$item['ipAdresse']][] = $item['mitgliedId'];
    else $helparr[$item['ipAdresse']] = [$item['mitgliedId']];
}
var_dump($helparr);
 
Zuletzt bearbeitet:
Danke dir, das hat mich ein gutes Stück weiter gebraucht.

Jetzt habe ich über dein Ergebnis folgende Schleife gebaut:
PHP:
    foreach ($helparr as list($userId1, $userId2)) {
        if(isset($userId2)) {
            echo "User-ID1: $userId1; User-ID2: $userId2; <br>";
        }
    }

Jetzt hätte ich nur noch eine blöde Frage:
Wie kann ich dort die IP-Adresse ausgeben lassen?

Das Array sieht folgendermaßen aus, was bei dir zurück gegeben wird:
PHP:
  ["84.139.16.50"]=>
  array(1) {
    [0]=>
    string(4) "2022"
  }
  ["84.138.69.208"]=>
  array(2) {
    [0]=>
    string(3) "691"
    [1]=>
    string(3) "833"
  }
 
Ich würde es allgemein formulieren, so dass es auch für mehr als zwei Benutzer funktioniert:
Code:
foreach ($helparr as $ip=>$users) {
    if (count($users) > 1) {
        echo 'IP: ' . $ip;
        $nr = 1;
        foreach ($users as $cuser) {
            echo ' Benutzer ' . $nr . ': ' . $cuser;
            $nr++;
        }
    }
}
 

Neue Beiträge

Zurück