Функция list() в PHP.

Функция list() в PHP позволяет легко присвоить нескольким переменным значения элементов массива. Все это делается в одной строке:
list($a, $b, $c) = $my_array;

Рассмотрим более детальный пример:
<?php
$my_array = array('Mazda', 'BMW', 'Honda');
list($a, $b, $c) = $my_array;
 
echo $a.'<br>';// выведет  Mazda
echo $b.'<br>';// выведет   BMW
echo $c;// выведет   Honda
?>

Также мы можем брать только избранные элементы массива, пропуская в параметрах функции list() ненужные элементы:
<?php
$my_array = array('Mazda', 'BMW', 'Honda');
list($a, , $c) = $my_array;
?>

Обратите внимание, что мы не просто не указываем второй параметр, а оставляем его место пустым, ставя запятую, как если бы он был.

Так мы напишем наш код, если нам нужен будет только последний элемент:
<?php
$my_array = array('Mazda', 'BMW', 'Honda');
list( , , $c) = $my_array;
?>

Функция list() удобна для обработки значений, получаемых запросом в базу данных. Рассмотрим пример:
<h1>Список пользователей системы</h1>
<?php
//мы уже подключились к базе и имеем ссылку на соединение $conn_link
$result = mysql_query("SELECT id, username, age FROM users", $conn_link);
 
while (list($id, $username, $age) = mysql_fetch_row($result)) {
    echo $id." ".$username." ".$age."<br>";
}
?>

Важное замечание: функция list() присваивает значения, начиная с крайнего правого параметра.

Для вас это будет совершенно незаметным, если вы работаете с обычными переменными. Однако, если в качестве параметров вы указываете элементы другого массива, то элементы в этом массиве будут располагаться в обратной последовательности.
<?php
$a = array();
$my_array = array('Mazda', 'BMW', 'Honda');
list($a[0], $a[1], $a[2]) = $my_array;
 
print_r($a);
?>

В результате выполнения данного кода мы получим массив со следующей структурой:
Array
(
[2] => Honda
[1] => BMW
[0] => Mazda
)

Как видите, порядок элементов стал обратным – от 2 до 0. Однако, проблем при проходе по данному массиву не возникнет, если на каждой итерации вы напрямую указываете индекс элемента, увеличивая его на 1 на каждом шаге, то есть, используя конструкцию for:
<?php
for($i = 0;$i < count($a); $i++){
   echo $a[i].'<br>';
}
?>

Выведет:
Mazda
BMW
Honda

При использовании конструкции foreach без указания индексов элементов, список будет в обратном порядке:
<?php 
foreach($a as $value){
   echo $value.'<br>';
}
?>

Получим:
Honda
BMW
Mazda
Теги:
list
Добавлено: 10 Мая 2018 16:34:16 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...