Операции над массивами PHP

Доступ по ключу

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; 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 ";

Комментарии: