foreach

Задача №10. Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его.

Задача из этого списка.

<?php
/* Задайте случайным образом массив из N элементов (целых чисел). Найдите максимальное число и напечатайте его. */
function maxNumber($num) {
	$a = 0;
	while($num > 0) {
		$array[] = rand(1, 99);
		$num--;
	}
	foreach($array as $elem) {
		if($elem > $a) { 
			$a = $elem; //перезаписывает текущий максимум, если новое число из массива больше.
		}
    }
    echo $a;
}
maxNumber(10);
?>

Задача №9. Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой".

Задача из этого списка.

<?php
/* Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой". */
function elka($nElem) {
	while($nElem > 0) {
		$randomArray[] = rand(100, 999);
		$nElem--;
	}
	foreach($randomArray as $elem) {
		echo $elem, ' ';
		$a += 1 ;
		if ($a > $b) { //переводит строку и добавляет ветвь в ёлочке
			echo "<br>";
			$a = 0;
			$b += 1;
		}
	}
}
elka(10);

Задача №7. Задать массив из 7-ми элементов через предварительное описание типа, заполнить его случайными значениями в одном цикл

Задача из этого списка.

<?php
/* Задать массив из 7-ми элементов через предварительное описание типа, заполнить его 
 * случайными значениями в одном цикле, а в другом цикле вывести эти значения на экран. */
function arr() {
	for($a = 7; $a > 0; $a--) {
		$array[] = rand();
    }
    foreach($array as $elem) {
		echo $elem, '<br>';
    }
}
arr();	
?>

foreach для обхода перебора массивов -- Какой цикл лушче использовать

По возможности старайтесь использовать именно foreach:

  • его синтаксис намного проще и нагляднее и другим программистам значительно проще будет понять вашу логику перебора массива
  • более того foreach гарантированно перебирает все элементы (если не был вызван break)

php foreach &$value По ссылке -- Опасность и механизм возникновение проблем. Почему работает "не так"

При использовании конструкции foreach со ссылкой на перебиремое значение (как тут) вы можете получить явные и неявные проблемы. Рассмотрим их.

#1 "Зависание" ссылки на последнем элементе массива

На официальном сайте PHP приводится иллюстрация этой проблемы (Внимание Ссылка $value на последний элемент массива останется...):

php foreach Изменение значение элемента массива в цикле при обходе этого массива (по ссылке)

ВНИМАНИЕ: при таком (как ниже) подходе возможны проблемы!

Чтобы не упоминать в теле цикла имя переменной массива можно просто передавать очередное значение (элемент массива) в тело цикла по ссылке, например:

foreach ($clinical['results'] as $key => &$result) {
	$result['positiveCount'] = (int)$result['positiveCount'];
	$result['negativeCount'] = (int)$result['negativeCount'];
}

Pages

Subscribe to RSS - foreach