Минимальный элемент двумерного массива с пропуском нулей

mattxs

Новичок
Добрый день, дорогие формучане!
Запустался в самом простом. Необходимо написать функцию поиска минимального элемента в двумерном массиве, при этом пропускать нули, если они имеются.

Вот, что я написал:
PHP:
$ab = array(
            array(5,0,0),
            array(0,4,0),
            array(0,2,0)
        );
function MinElemTarif($arr)
    {
        $min = $arr[0][0];
       
        for ($i=0; $i < count($arr); $i++)
            {
                for ($j=0; $j < count($arr[0]); $j++)
                    {
                        if($arr[$i][$j]==0) continue;

                        if($min>$arr[$i][$j]) $min=$arr[$i][$j];
                    }
            }
        return $min;
    }
Она работает, отлично и пропускает нули, но до тех пор, пока я не задам первый элемент равный 0, т.е.
PHP:
$ab = array(
            array(0,0,0),
            array(0,4,0),
            array(0,2,0)
        );
Тогда он пишет, что минимум 0,не пропуская его.
Помогите, пожалуйста, разобраться. Заранее спасибо!
 

Vano

Новичок
Почему так понимаеш? Во втором варианте $min = $arr[0][0]; принимает значение 0, дальше в проверке if($min>$arr[$i][$j]) $min=$arr[$i][$j]; 0 не может быть больше любого элемента.
 

Hello

Новичок
PHP:
$min = $arr[0][0];
заменить на
PHP:
$min = null;
И в цикле инициализировать первым не нулевым элементом
 
Сверху