Работа с массивом
Пятница, 25 Фев 2011 23:40Массив (array) – несколько значений объединенных одним именем переменной (список однотипных элементов)
По способу идентификации элементов (2 типа):
1. массив определяется индексом в последовательности (индексированные)
2. массив имеет ассоциативную природу и для обращения к элементам использует ключи (ассоциативные)
По размеренности делят на:
1. одномерные
2. многомерные
Одномерные массивы или массив строка
А) Индексируемые
Синтаксис одномерного массива: $имя[индекс1];
Например:
1 2 3 4 5 6 7 8 9 | $a[0]=5; $a[1]=10; $a[2]=23; print($a[1]); //Результат : 10 |
Функция array() – создает массив
Например:
1 2 3 | $a=array(5,10,23); print($a[1]); //Результат : 10 |
Добавление элемента в массив
1.способ $a[8]=13; — записывает под номером 8,
2.способ $a[]=13; — записывает в конец массива
Удаление элемента в массиве
unset($a[4]); — удаляет 4-ый элемент
Б) Ассоциативные
( используется пара ключ/значение)
Пример:
1 2 3 | $a[‘Samsung’]=’poly’; $a[‘Nokia’]=’mono’; |
или
1 | $a=array(‘Samsung’=>’poly’, ‘Nokia’=>’mono’); |
Многомерные массивы – представляют собой таблицу.
А) Индексируемые
(элементы в них определяются несколькими индексами)
Синтаксис: $имя[индекс1][индекс2]…..[индексN];
Пример:
1 | $a=$chess_board[5][4]; |
Б) Ассоциативные
| Samsung | Colour | Poly | 80 |
| Nokia | bw | Mono | 50 |
| Siemens | Colour | Mono | 60 |
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php $a=array(array('Samsung','colour','poly',80), array('Nokia','bw','mono',50), array('Siemens','colour','mono',60)); foreach($a as $v) { foreach($v as $vv) { print($vv.'-'); } print('<br>'); } ?> |
| Программа выводит элементы массива по порядку | Программа выводит элементы массива подряд |
| $a[0]=5;
$a[1]=10; $a[3]=6; $a[2]=7; |
|
| for($i=0;$i<count;$i++)
{ print($a[$i],’<br>’); } |
foreach($a as $k=>$v)
{ print($k.’-‘.$v.’<br>’); } |
| Результат: | |
| 5
10 7 6 |
0-5
1-10 3-6 2-7 |
Функция in_array($x,$a) – логическая функция, которая показывает присутствует ли в массиве $a элемент $х.
Пример:
1 2 3 4 5 6 7 8 9 10 11 | $a=array(5,8,10); If(in_array(5,$a)) {print(‘Присутствует’); }else{ print(‘Не присутствует’);} //Результат: Присутствует. |
Функция implode(‘&’,$a) – берет все элементы массива и записывает с разделителями & в одну строку
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $a=array('name'=>'Masha','work'=>'kursi','age'=>25); print('массив c implode'.'<br>'); foreach($a as $k=>$v) {print($k.'-'.$v.'<br>');} print('<hr>'); $s=implode('&',$a); |
Функция explode(‘&’,$s) – обратные действия к implode()
1 2 3 4 5 6 7 8 9 10 11 12 13 | print('массив c explode'.'<br>'.$s); print('<br>'.'массив $b:'.'<br>'); $b=explode('&',$s); foreach($b as $k=>$v) {print($k.'-'.$v.'<br>');} print('<hr>'); ?> |
Функция $s=serialize($a); - эта функция упаковывает масив в строку $s
Функция $a=unserialize($s); - эта функция распаковывает строку $s на элементы массива
Сортировка массивов.
Функции сортировки:
| Функция | Сортировка | Сохранение пар «ключ /значение» | пример |
| sort | Значение по возрастанию (от меньшего к большему) | нет | |
| rsort | Значение по убыванию (от большего к меньшему) | нет | |
| asort | Значение по возрастанию (от меньшего к большему) | да | $a=array(‘name’=>’Masha’,'work’=>’kursi’,'age’=>25);
foreach($a as $k=>$v) {print($k.’-’.$v.’<br>’);} asort($a); |
| arsort | Значение по убыванию (от большего к меньшему) | да | $a=array(‘name’=>’Masha’,'work’=>’kursi’,'age’=>25);
foreach($a as $k=>$v) {print($k.’-’.$v.’<br>’);} arsort($a); |
| ksort | Ключ по возрастанию | да | $a=array(‘name’=>’Masha’,'work’=>’kursi’,'age’=>25);
foreach($a as $k=>$v) {print($k.’-’.$v.’<br>’);} ksort($a); |
| krsort | Ключ по убыванию | да | $a=array(‘name’=>’Masha’,'work’=>’kursi’,'age’=>25);
foreach($a as $k=>$v) {print($k.’-’.$v.’<br>’);} krsort($a); |
| Usort | Значение по пользовательским критериям | нет | |
| Uasort | Значение по пользовательским критериям | да | |
| uksort | Ключ по пользовательским критериям | да |