由于您已经在使用foreach
您只想要其他替代品,那么您可以考虑这个解决方案
解决方案 1
您可以尝试使用过滤您的搜索array_filter
$search = "PT+Sans:400" ;
$array = array_filter($array,function($v)use($search){ return $v['font'] == $search;});
var_dump($array); // returns all found array
输出
array
1 =>
array
'font' => string 'PT+Sans:400' (length=11)
'label' => string 'PT Sans' (length=7)
如果您只需要标签
$find = array_shift($array); // take only the first
print($find['label']); // output the label
输出
PT Sans
解决方案 2
如果您对返回数组不感兴趣,而您想要的只是标签,那么您应该考虑array_reduce
$search = "PT+Sans:400" ;
$results = array_reduce($array,function($a,$b)use($search){ return $b['font'] == $search ? $b['label'] : null ; });
print($results);
输出
PT Sans