Как правильно создать массив?

moskitos80

Новичок
Автор оригинала: *****
ga|19:09| - это не массив. это строка непонятного формата.

в чем вопрос? не знаем, что такое цикл?
Привет всем. По поводу циклов: у мменя возникла такая проблема: хотел написать функцию, которая возвращала бы индекс ключа с наименьшим значением. Например:

$myarr = (78,23,45); // Здесь она дожна по идее вернуть 1

Надеюсь понятно.

Написал такой код:


PHP:
<?php  error_reporting(E_ALL); 

$myarr = array (18,6,7,2,20,12,5,9);  //Массив который надо проверить. По идее здесь 3 - индекс ключа с наименьшим значением.

   function array_min($arr){
			          $min = $arr[0];
					   $min_ind = 0;
		   foreach ($arr as $key => $val){
					        if($val < $min){      // Если найдено значение меньше самого первого ключа
					          $min_ind = $key;         //записываем его в $min_ind
	                                        } 
						                   }
                    echo $min_ind;  //Выводим на экран  $min_ind
				        }
					
array_min($myarr);
?>
По логике она должна вывести 3, а выводит она в этом конкретном случае 7!
Я всю голову сломал - не пойму где я ошибся. Может кто подскажет?

ЗЫ:
Я только начал учить PHP. Мне важно понять где я делаю не так именно в этом листинге.
 

Adelf

Administrator
Команда форума
PHP:
if($val < $min)
{
$min_ind = $key;
}
Ничего не забыл вставить сюда?
 

moskitos80

Новичок
Автор оригинала: Adelf
PHP:
if($val < $min)
{
$min_ind = $key;
}
Ничего не забыл вставить сюда?
Отлично! Спасибо за наводку - вот рабочий код:

PHP:
function array_min($arr){   
                                $min = $arr[0];                        
                                    $min_ind = 0;
                                     foreach ($arr as $key => $val){
                                      if($val < $min){ 
                                       $min_ind = $key;
                                       $min  = $val;    // Вот это и забыл!
                                         }                                             
                                        }                     
         echo $min_ind;                         
}
  array_min($myarr);
MuXaJIbI41981 - Тоже спасибо. Учту на будущее.
Но мне главное было разобраться в моей ошибке, в моём коде т.е. учиться думать по PHP шному :)
Сейчас я только набираюсь опыта и пользуюсь пока тем, что знаю.
 
Сверху