Функции для работы с массивами

В 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.

Наши рекомендации