PHP
Цикл foreach
Операторы switch, case
Первый вариант синтаксиса foreach
Второй вариант синтаксиса foreach
Операторы switch, case (php.net)
Конструкция foreach (php.net) - предоставляет простой способ перебора массивов. Цикл foreach специально сделан для для того, чтобы переберать элементы массива одного за другим. Не важно какие ключи у массива: числовые, строковые (нумерованные массивы или ассоциативные), не важно, идут-ли числовые ключи по порядку или с разрывами - для цикла foreach ни какой роли это не играет. Он просто берет массив и переберает один элемент за другим до самого конца массива. Это цикл специально создавался для массивов, то есть проводить с ним теже самые операции, что и с циклами while и for, не получиться и php выдаст ошибку при попытке использования с переменными других типов или неинициализированными переменными.
Существует два вида синтаксиса:
Первый цикл перебирает массив, задаваемый с помощью переменной $array. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу:
foreach ($array as $value)
{
Тело цикла
}
Второй цикл дополнительно присвоит ключ текущего элемента переменной $key на каждой итерации:
foreach ($array as $key => $value)
{
Тело цикла
}
Первый вариант синтаксиса foreach
Пример:
<?php
$arr = [ 'Ivanov' , 'Petrov' , 'Sidorov' ];
$arr [5] = 'Pupkin' ; // добавит в массив $arr 'Pupkin' c ключем 5
$arr [] = 'Vaskin' ; // добавит в конец массива 'Vaskin' c ключем 6
($arr);
foreach ($arr as $item) {
echo $item . '<br>';
}
?>
print_r($arr) выведет:
Array ( [0] => Ivanov [1] => Petrov [2] => Sidorov [5] => Pupkin [6] => Vaskin )
echo $item выведет:
Ivanov
Petrov
Sidorov
Pupkin
Vaskin
- где $arr - название массива,
as - ключевое слово (как),
$item - временная переменная.
То есть, мы проходимся по массиву $arr, берем каждый его конкретный элемент как,
и далее мы указываем в какую временную переменную мы его поместим. На каждой итерации
цикла в переменную $item попадает каждый конкретный элемент массива.
Пример со строковыми ключами:
<?php
$names = [
'Ivan' => 'Ivanov' ,
'Petr' => 'Petrov' ,
'Sidor' => 'Sidorov' ,
];
foreach ($names as $name) {
echo $name . '<br>';
}
?>
выведет:
Ivanov
Petrov
Sidorov
При использовании первого варианта синтаксиса foreach выводятся только значения. Если нам нужно вывести еще и ключи, необходимо использовать второй вариант синтаксиса.
Второй вариант синтаксиса foreach
Пример:
<?php
foreach ($names as $key => $name) {
echo "Name: $key, Surname: $name <br>";
}
?>
выведет:
Name: Ivan, Surname: Ivanov
Name: Petr, Surname: Petrov
Name: Sidor, Surname: Sidorov
- здесь на каждой итерации цикла в переменную $name, как и прежде, попадает значение каждого конкретного элемент массива, а в переменную $key попадет ключ.
Пример:
<?php
foreach ($arr as $k => $v) {
echo "Key: $k, Sname: $v <br>" ;
}
?>
выведет:
Key: 0, Sname: Ivanov
Key: 1, Sname: Petrov
Key: 2, Sname: Sidorov
Key: 5, Sname: Pupkin
Key: 6, Sname: Vaskin
Операторы switch, case
Оператор switch - это по сути тоже самое условие, которое часто применяется в том случае, когда нам нужно перебрать множество различных вариантов условия.
Работа оператора switch похожа на работу конструкции if - elseif - else. Он выполняет ту же функцию, но позволяет немного упростить код, сделать его более понятным.
Для наглядности сравним работу эти конструкций.
Пример работы конструкции if - elseif - else:
<?php
$var = 3;
if ( $var == 1 ){
echo 'Variable = 1';
} elseif ($var == 2){
echo 'Variable = 2' ;
} elseif ($var == 3){
echo 'Variable = 3' ;
} else {
echo 'Something else...' ;
}
// выведет: Variable = 3
?>
Пример работы оператора switch:
<?php
$var = 3;
switch ($var){
case 1:
echo 'Variable = 1';
break;
case 2:
echo 'Variable = 2';
break;
case 3:
echo 'Variable = 3';
break;
default:
echo 'Something else...';
}
// выведет: Variable = 3
?>
- где $var - переменная, которую мы будем проверять;
- внутри операторных скобок, с помощью оператора case (кейс), мы задаем значение с которым мы сравниваем нашу переменную $var;
- затем выполняется тот самый код, который должен быть выполнен в случае, если наше
условие выполняется (в нашем случае, если $var = 3);
- после этого используем оператор break - для того, чтобы не срабатывали последующие кейсы;
- в конце кода записываем оператор default (по умолчанию) - это аналог else.
Наверх Наверх