PHP帮助在从函数检索结果时简化IF语句


PHP Help to simplify an IF statement when retrieving results from a function

假设我有一个函数,它在二维数组中查找值:

function findValueBi($array, $field, $value, $returnfield)
{
   foreach($array as $key => $product)
   {
      if ( $product[$field] === $value )
         return $product[$returnfield];
   }
   return false;
}

二维数组看起来是这样的:

Array
(
    [0] => Array
        (
            [number] => 2
            [type] => unimodal
        )
    [1] => Array
        (
            [number] => 6
            [type] => unimodal
        )
    [2] => Array
        (
            [number] => 8
            [type] => multimodal
        )
    [3] => Array
        (
            [number] => 27
            [type] => multimodal
        )
    [4] => Array
        (
            [number] => 29
            [type] => multimodal
        )
)

该函数的作用是在"number"键中查找给定的值。如果找到了它,我会检索它对应的"type"键值。例如,如果我正在寻找"数字"29,那么我将获得"类型"值"multimodal"(数组样本的最后一项)。否则,如果找不到值,函数将返回false。

因此,我检索该值的方式如下:

if(findValueBi($numbers_patterns,'number',$number,'type')!==false){
                $resultado=findValueBi($numbers_patterns,'number',$number,'type');
                return $resultado;
            }
else{ ... }

有更好和/或更快的方法吗?是否可以直接在if语句中检索信息?正如你所看到的,我调用了两次函数,那么如何用if语句调用一次呢???

您可以选择第一次使用它,然后在if:中使用它

$resultado = findValueBi($numbers_patterns,'number',$number,'type'); // call it once
if($resultado !== false){
    // use $resultado here 
}