Get Schnittmenge eines multiplen Arrays in PHP

Startpunk

Ich habe ein Mehrfacharray, wie im folgenden Beispiel.

$array = array (
  'role_1' => 
  array (
    0 => 'value_2',
    0 => 'value_3',
  ),
  'role_2' => 
  array (
    0 => 'value_1',
    1 => 'value_2',
  ),
  'role_3' => 
  array (
    0 => 'value_2',
    1 => 'value_3',
  ),
)
To

Ich gehe gerne in einer Schleife durch die Sub-Arrays, um nur die Kreuzung zu erhalten. Das Array wurde dynamisch erstellt, kann viele Unterarrays habenrole_[x] und auch viel Schlüssel / Wert in den Sub-Arrays. Der Schlüssel ist nicht notwendig, nur der Wert. Der Schlüssel ist auch eine Zählung, keine Zeichenfolge.

Als Ergebnis möchte ich in diesem Beispiel dieses kleine Array bekommen.

$array = array( 'value_2' )

Die Indizes, "der Array-Name", wierole_1 der Sub-Arrays ist nach der Schnittmenge nicht mehr relevant. Wichtig für mich sind im Ergebnis die Werte, in jedem Sub-Array existieren nur die Werte.

Versuche

Ich hatte es mit der Quelle versucht, aber ich denke, es ist viel einfacher möglich.

$value_stack = array();
$result = array();
$i = 0;
foreach( $settings_ as $role => $values ) {

    foreach( $values as $value ){

        if( in_array( $value,$value_stack ) || $i === 0 ) {
            $result[ $role ][] = $value;
        }

        $value_stack[] = $value;
    }
    $i++;

};

Die Zusammenführung dieses Multi-Array-Ergebnisses sollte mit einem @ ausgeführt werdearray_merge in einer Schleife.

Vielen Dank für Ihre Zeit

Antworten auf die Frage(6)

Ihre Antwort auf die Frage