|
|
Операции над массивами
Доступ по ключу
echo $a["muha"]; // выводит элемент массива с ключом muha
echo $a["muha"]["lapka"]; // так используются двумерные массивы.
Функция count()
Эта функция считает количество элементов в массиве. у неё есть синоним sizeof().
Например:
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count ($b);
// $result == 3;
Заранее скажу, что это очень полезная функция =)
Слияние массивов.
Слияние массивов (не путать со спариванием и сексом, хотя если уж сильно хочется спутать... :)
Что же такое слияние массива- это создание массива, сождержащего элементы нескольких массивов.
Пример:
$a=array("a"=>"aa","b"=>"bb");
$a=array("c"=>"cc","d"=>"dd");
$c=$a+$b;
в результате $c будет содержать
array("a"=>"aa","b"=>"bb","c"=>"cc","d"=>"dd")
именно в этом порядке, если сделать такое:
$a=array("a"=>"aa","b"=>"bb");
$a=array("c"=>"cc","d"=>"dd");
$c=$b+$a;
будет такое: array("c"=>"cc","d"=>"dd","a"=>"aa","b"=>"bb")
Уловили в чём прикол?
НО возникает ошибка (ну, в общем, и не ошибка это :) когда мы "сливаем" списки.
Например:
$a=array(10,20,30);
$b=array(100,200);
$c=$a+$b;
Вы думаете, что у вас получится array (10,20,30,100,200), а вот и нифига... получится array (10,20,30)
При слиянии массивов с некоторыми одинаковыми элементами (элементами с одинаковыми ключами) в результате останется только один элемент с таким ключом - тот, что был в первом массиве.
Перебор массивов
Если массив-список, то это, как говорится, как два байта переслать. Предположим, что $name - список имен. Распечатем их в столбик.
for ($i=0; $i
echo $name[$i]."
"
А что же делать, если массив $a - ассоциативный ? Нет, не забить на пхп и пойти учить Prolog :) Для перебора такого массива можно воспользоваться такой конструкцией:
$name=array(
array('name'=>'vasya','age'=>'17')
array('name'=>"dima','age'=>'19')
);
for (reset($name); ($k=key(name)); next($name))
echo "возраст $k- {$name[$k]} лет
";
Всё это опирается на то, что массивы напрвлены, и в них есть такое понятие, как текущий элемент. Функция Reset() просто устанавливает этот элемент на первую позицию в массиве.
Функция Key() возвращает ключ, который имеет текущий элемент.
Функция Next() перемещает текущий элемент на одну позицию вперёд.
Функция End() устанавливает позицию текущего элемента на конец массива.
Функция Prev() передвигает на одно значение назад.
Перебор массива чисто в стиле PHP4:
foreach($names as $k=>$v) echo "Vozrast $k - $v
";
Дополнительно на данную тему:
Работа с Cookies на PHP
PHP и Web. Кэширование
PHP и всё такое....html
Построение дерева иерархии с помощью PHP / MySQL
Система 'Совет дня'. Часть 1
Система
Система Совет дня. (Часть 3)
Создание системы учета посещений
Как выучить PHP
Способы защиты сайта от скачивания
|
|
|
|
|
|
|