Функции для работы с массивами
В PHP имеется много полезных функций для работы с массивами. Вот некоторые из них:
1.
array_unique(массив); формирует массив, полученный из исходного путем удаления из него повторяющихся элементов:
$my_array = array(‘a’, ‘b’, ‘c’, ‘a’, 5, 1, 5);
$new_array = array_unique($my_array);
var_dump($new_array);
На экран будет выведено:
array(5) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [4]=> int(5) [5]=> int(1) }
2.
array_sum(массив); вычисляет сумму элементов массива:
$my_array = array(1, 2, ‘3’, 4,”5”);
$summa = array_sum($my_array); // $summa = 15
3.
array_slice(массив, n1, n2); формирует новый массив, являющийся частью исходного: в новый массив записываются n2 его элементов, начиная с элемента с индексом n1:
$my_array = array(5, 4, “Аня”, 3, “Лена”);
$new_array = array_slice($my_array, 1, 3);
var_dump($new_array);
На экран будет выведено:
array(3) { [0]=> int(4) [1]=> string(3) "Аня" [2]=> int(3) }
4.
array_merge(массив1, массив2, массив3, …); формирует новый массив, получающийся объединением исходных массивов:
$first_array = array(5, 4, 3);
$second_array = array(5, 2, 1);
$new_array = array_merge($first_array, $second_array);
var_dump($new_array);
На экран будет выведено:
array(6) { [0]=> int(5) [1]=> int(4) [2]=> int(3) [3]=> int(5) [4]=> int(2) [5]=> int(1) }
5.
array_diff(массив1, массив2, массив3, …); формирует новый массив, состоящий из тех элементов первого массива, которых нет в остальных массивах (аналог операции вычитания во множествах):
$first_array = array(5, 4, 3, 2, 1);
$array_1 = array(6, 2, 8);
$array_2 = array(3, 0, 9);
$array_3 = array(5, 6, 1);
$new_array = array_diff($first_array, $array_1, $array_2, $array_3);
var_dump($new_array);
На экран будет выведено:
array(1) { [1]=> int(4) }
Во всех остальных массивах нет элемента 4.
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
6.
array_intersect(массив1, массив2, массив3, …); формирует новый массив, состоящий из тех элементов первого массива, которые имеются и в остальных массивах (аналог операции пересечения во множествах):
$first_array = array(5, 4, 3, 2, 1);
$array_1 = array(3, 2, 1);
$array_2 = array(4, 3, 2, 5);
$array_3 = array(2, 5, 3);
$new_array = array_intersect($first_array, $array_1, $array_2, $array_3);
var_dump($new_array);
На экран будет выведено:
array(2) { [2]=> int(3) [3]=> int(2) }
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
7.
array_flip(массив); формирует новый массив путем перестановки местами индексов и значений элементов исходного массива:
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
$new_array = array_flip($my_array);
foreach($new_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Иван=>Имя
Алексеев=>Фамилия
доцент=>Должность
25560=>Зарплата
8.
extract(массив); создает переменные из символьных строковых индексов элементов массива и присваивает им значения соответствующих элементов; возвращает количество созданных переменных:
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
$x = extract($my_array); //$x – количество созданных переменных
echo ‘$Имя=’, $Имя, “<BR>”;
echo ‘$Фамилия=’, $Фамилия, “<BR>”;
echo ‘$Должность=’, $Должность, “<BR>”;
echo ‘$Зарплата=’, $Зарплата, “<BR>”;
На экран будет выведено:
$Имя=Иван
$Фамилия=Алексеев
$Должность=доцент
$Зарплата=25560
9.
compact(список переменных); формирует массив из указанных в списке именпеременных в кавычках без символа $ ; действие этой функции противоположно действию функции extract():
$name = "Иван";
$fam = "Алексеев";
$dolshn = "доцент";
$zarp = 25560;
$my_array = compact("name", "fam", "dolshn", "zarp");
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
name=>Иван
fam=>Алексеев
dolshn=>доцент
zarp=>25560
10.
array_reverse(массив); формирует новый массив переворотом исходного (“поплавок”):
$my_array = array
(
'Имя'=>"Иван",
'Фамилия'=>"Алексеев",
'Должность'=>"доцент",
'Зарплата'=>25560
);
$new_array = array_reverse($my_array);
foreach($new_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
Зарплата=>25560
Должность=>доцент
Фамилия=>Алексеев
Имя=>Иван
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
11.
shuffle(массив);перемешивание элементов массива-списка в случайном порядке:
$my_array = array
(
"Иван",
"Алексеев",
"доцент",
);
shuffle($my_array);
foreach($my_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
0=>доцент
1=>25560
2=>Алексеев
3=>Иван
Таким образом, прежняя связь “индекс-значение” в массиве не сохраняется. При каждом
обновлении веб-страницы порядок следования элементов массива будет меняться.
12.
array_count_values(массив); определяет, сколько раз каждое значение встречается в массиве-списке, создавая ассоциативный массив:
$my_array = array
(
"Иван",
5,
"Виктор",
“Петр”,
5,
2,
"Иван"
);
$count_array = array_count_values($my_array);
foreach($count_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
Иван=>2
5=>2
Виктор=>1
Петр=>1
2=>1
Таким образом, формируется новый ассоциативный массив, индексами элементов которого являются значения элементов исходного массива, а значениями элементов – количество их повторений.
13.
in_array(переменная, массив); возвращает true, если в массиве есть элемент, равный значению переменной.
14.
array_push(массив, переменная1, переменная2, …);добавляетв конец массива-списка новые элементы, равные значениям указанных переменных, и возвращает новое число элементов массива.
15.
array_unshift(массив, переменная1, переменная2, …);добавляетв начало массива-списка новые элементы, равные указанным переменным (вдвигает их в массив слева), и возвращает новое число элементов массива; индексы всех элементов массива пересчитываются, начальному элементу присваивается индекс 0:
$my_array = array(5, 4, 3, 2, 1);
$x1 = 1;
$x2 = 2;
$x3 = 3;
$n = array_unshift($my_array, $x1, $x2, $x3); //$n=8
foreach($my_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
0=>1
1=>2
2=>3
3=>5
4=>4
5=>3
6=>2
7=>1
16.
array_pop(массив); возвращает последний элемент массива-списка, предварительно удалив его из массива.
17.
array_shift(массив); возвращает первый элемент массива-списка, предварительно удалив его из массива; индексы оставшихся элементов пересчитываются, начиная с 0.