Конструктсияи foreach

Конструктсияи foreach имкон медиҳад, ки элементҳои массив пайдарпай такрор карда шаванд. Он бо массивҳо ва объектҳое кор мекунад, ки интерфейси Traversable-ро амалӣ мекунанд. Ду вариант аз синтаксис мавҷуд аст: барои такрори танҳо қиматҳо ва барои такрори калидҳо ва қиматҳо.

Синтаксис

phpforeach (array as $value) {
  // тани давр
}
phpforeach (array as $key => $value) {
  // тани давр
}

Намуна

Такрори соддаи элементҳои массив:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as $value) {
    echo $value . '<br>';
  }
?>

Натиҷаи иҷрои код:

php1
2
3
4
5

Намуна

Такрори массив бо гирифтани калидҳо ва қиматҳо:

php<?php
  $arr = ['a' => 1, 'b' => 2, 'c' => 3];
  
  foreach ($arr as $key => $value) {
    echo "$key: $value<br>";
  }
?>

Натиҷаи иҷрои код:

phpa: 1
b: 2
c: 3

Намуна

Истифода аз истинод барои тағйир додани элементҳои массив:

php<?php
  $arr = [1, 2, 3, 4, 5];
  foreach ($arr as &$value) {
    $value *= 2;
  }
  
  unset($value);
  print_r($arr);
?>

Натиҷаи иҷрои код:

php[2, 4, 6, 8, 10]

Инчунин нигаред

  • функсияи array_map,
    ки функсияи callback-ро ба ҳамаи элементҳои массив татбиқ мекунад
  • функсияи array_walk,
    ки функсияи корбарӣ барои ҳар як элементи массив татбиқ мекунад