2017-02-24 88 views
2

我有以下阵列$outsPHP多维数组搜索 - 在值不是唯一

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) 
) 

我有一个varaible如下:

$los = 'Field'; 

我有以下的代码,带回value根据团队如下Out_Count如下:

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

但是,我遇到了问题,因为Field不是唯一的!我尝试了以下...但没有喜悦:

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

然后:

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

,但没有喜悦...显然我会错了!任何意见将是有益的!

回答

1

您可以试试,

$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'];