Get Schnittmenge eines multiplen Arrays in PHP
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',
),
)
ToIch 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.
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