2017-02-24 2 views
2

Ich habe folgendes Array $outs:PHP mehrdimensionales Array-Suche - wo Werte nicht eindeutig

Array ( 
    [0] => Array ([Dept] => Sales  [Team] => Field [Out_Count] => 14) 
    [1] => Array ([Dept] => IT   [Team] => Tech Sup [Out_Count] => 2) 
    [2] => Array ([Dept] => Marketing [Team] => Digital [Out_Count] => 33) 
    [3] => Array ([Dept] => Operations [Team] => Field [Out_Count] => 7) 
    [4] => Array ([Dept] => Finance [Team] => Corp  [Out_Count] => 7) 
) 

Ich habe einen varaible wie folgt:

$los = 'Field'; 

Ich habe folgende Code, der die value zurückbringt von Out_Count wie folgt basierend auf Team:

$key = array_search($los, array_column($outs, 'Team')); 
$count = $outs[$key]['Out_Count']; 

Allerdings habe ich Probleme, weil Field nicht eindeutig ist! Ich habe versucht, die folgende ... aber keine Freude:

$los = 'Field'; 
$loc = 'Sales'; 

und dann:

$key = array_search($loc, array_column($outs, 'Dept'), $los, array_column($outs, 'Team')); 
$count = $outs[$key]['Out_Count']; 

Aber keine Freude ... eindeutig falsch, ich werde! Jeder Rat wäre hilfreich!

Antwort

1

Sie können versuchen,

$search = ['Team' => 'Field', 'Dept' => 'Sales']; 
$keys = array_keys(
    array_filter(
     $outs, 
     function ($v) use ($search) { return $v['Team'] == $search['Team'] && $v['Dept'] == $search['Dept']; } 
    ) 
); 
$key = $keys[0]; 
$count = $outs[$key]['Out_Count']; 
Verwandte Themen