Допустим, у меня есть эта функция, которая ищет значение внутри двумерного массива:
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
)
)
Функция выполняет поиск заданного значения внутри клавиши «число». Если он найден, я получаю соответствующее ему значение типа. Например, если я ищу «число» 29, то я получу значение «тип» «мультимодальный» (последний элемент образца массива). В противном случае, если значение не найдено, функция возвращает 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
}
Других решений пока нет …