массивы — PHP Help для упрощения оператора IF при получении результатов из функции

Допустим, у меня есть эта функция, которая ищет значение внутри двумерного массива:

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

0

Решение

Вы можете просто выбрать использовать его в первый раз, а затем использовать его внутри if:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector