Элементы массива можно объединять в одну строку, задавая разделитель элементов – символ, вставляемый в строку между ними: implode(разделитель, массив)
$my_array = array
(
“Иван”,
“Алексеев”,
“доцент”,
);
$str = implode(‘ ‘, $my_array);
echo $str, “<BR>”;
На экран будет выведено:
Для записи фрагментов текстовой строки в элементы массива служит функция:
Разделитель – символ или последовательность символов, которая рассматривается как разделитель фрагментов строки. Если разделитель в строке не содержится, то вся строка записывается в начальный элемент массива.
array_sum(массив); вычисляет сумму элементов массива:
$my_array = array(1, 2, ‘3’, 4,”5”);
$summa = array_sum($my_array); // $summa = 15
array_slice(массив, n1, n2); формирует новый массив, являющийся частью исходного: в новый массив записываются n2 его элементов, начиная с элемента с индексом n1:
array_diff(массив1, массив2, массив3, …); формирует новый массив, состоящий из тех элементов первого массива, которых нет в остальных массивах (аналог операции вычитания во множествах):
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
array_intersect(массив1, массив2, массив3, …); формирует новый массив, состоящий из тех элементов первого массива, которые имеются и в остальных массивах (аналог операции пересечения во множествах):
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
array_flip(массив); формирует новый массив путем перестановки местами индексов и значений элементов исходного массива:
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
$new_array = array_flip($my_array);
foreach($new_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Иван=>Имя
Алексеев=>Фамилия
доцент=>Должность
extract(массив); создает переменные из символьных строковых индексов элементов массива и присваивает им значения соответствующих элементов; возвращает количество созданных переменных:
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
$x = extract($my_array); //$x – количество созданных переменных
echo ‘$Имя=’, $Имя, “<BR>”;
echo ‘$Фамилия=’, $Фамилия, “<BR>”;
echo ‘$Должность=’, $Должность, “<BR>”;
echo ‘$Зарплата=’, $Зарплата, “<BR>”;
На экран будет выведено:
$Имя=Иван
$Фамилия=Алексеев
$Должность=доцент
$Зарплата=25560
compact(список переменных); формирует массив из указанных в списке именпеременных в кавычках без символа $ ; действие этой функции противоположно действию функции extract():
array_reverse(массив); формирует новый массив переворотом исходного (“поплавок”):
$my_array = array
(
'Имя'=>"Иван",
'Фамилия'=>"Алексеев",
'Должность'=>"доцент",
'Зарплата'=>25560
);
$new_array = array_reverse($my_array);
foreach($new_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
Зарплата=>25560
Должность=>доцент
Фамилия=>Алексеев
Имя=>Иван
Таким образом, связь “индекс-значение” в новом массиве сохраняется.
shuffle(массив);перемешивание элементов массива-списка в случайном порядке:
$my_array = array
(
"Иван",
"Алексеев",
"доцент",
);
shuffle($my_array);
foreach($my_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
Таким образом, прежняя связь “индекс-значение” в массиве не сохраняется. При каждом
обновлении веб-страницы порядок следования элементов массива будет меняться.
array_count_values(массив); определяет, сколько раз каждое значение встречается в массиве-списке, создавая ассоциативный массив:
$my_array = array
(
"Иван",
"Виктор",
“Петр”,
"Иван"
);
$count_array = array_count_values($my_array);
foreach($count_array as $index=>$value)
{
echo $index, '=>', $value;
echo "<BR>";
}
На экран будет выведено:
Иван=>2
Виктор=>1
Петр=>1
Таким образом, формируется новый ассоциативный массив, индексами элементов которого являются значения элементов исходного массива, а значениями элементов – количество их повторений.
in_array(переменная, массив); возвращает true, если в массиве есть элемент, равный значению переменной.
array_push(массив, переменная1, переменная2, …);добавляетв конец массива-списка новые элементы, равные значениям указанных переменных, и возвращает новое число элементов массива.
array_unshift(массив, переменная1, переменная2, …);добавляетв начало массива-списка новые элементы, равные указанным переменным (вдвигает их в массив слева), и возвращает новое число элементов массива; индексы всех элементов массива пересчитываются, начальному элементу присваивается индекс 0:
array_pop(массив); возвращает последний элемент массива-списка, предварительно удалив его из массива.
array_shift(массив); возвращает первый элемент массива-списка, предварительно удалив его из массива; индексы оставшихся элементов пересчитываются, начиная с 0.
В PHP имеются предопределенные массивы с глобальной областью видимости. Их
называют автоглобальными или суперглобальными массивами, поскольку они доступны из любого сценария на языке PHP.
Из большого перечня таких массивов нас будут интересовать только два. Они хранят значения элементов формы HTML-документа, переданные из нее сценарию PHP для обработки на сервере:
- $_GET – содержит данные, переданные в сценарий как часть URL-адреса. Это происходит в том случае, когда в форме определен метод передачи METHOD=GET,
- $_POST – содержит данные, переданные из формы методом POST.
Оба этих массива являются ассоциативными, причем индексы их элементов – это имена элементов (полей) формы, задаваемые атрибутами NAME, а значения – переданные из этих полей данные.
Например, серверному сценарию из HTML-формы было передано методом POST содержимое элемента формы с атрибутом NAME=”user_data”. Это значение может быть получено в сценарии как $_POST[“user_data”] – элемент массива $_POST с индексом “user_data”.
Пример: создать форму со следующими элементами (полями) и передать их значения PHP-сценарию методом POST: