Модификация элементов массива в PHP



Нередко, нужно изменить значение того, или иного элемента массива, для этого нужно всего лишь обратится к элементу массива по его индексу и присвоить ему новое значение.
Например, у нас есть массив:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS";?>

Для того, чтобы изменить значение элемента используем оператор присвоения:

<?php$arr[1] = "JAVASCRIPT";?>

Для того, чтобы добавить новый элемент в конец массива использует конструкцию:

<?php$arr[] = "JQUERY";?>

Для того, чтобы вывести на экран массив можно использовать foreach:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; $arr[1] = "JAVASCRIPT";$arr[] = "JQUERY"; foreach($arr as $key => $value) { // при переборе: $key - индекс элемента массива, $value - значение элемента массива echo $value.'<br/>';}?>

Отображение в браузере:

PHPJAVASCRIPTCSS JQUERY

Удаление элементов массива в PHP

Если нам нужно удалить один из элементов массива, то для этого мы должны использовать функцию unset

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; unset($arr[1]); foreach($arr as $key => $value) { echo $value.'<br/>';}?>

Перебор элементов массива в PHP

Кроме использования цикла for для вывода всех элементов массива на экран мы можем использовать функцию print_r, которая выведет все элементы массива вместе с их индексами.

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; print_r($arr); ?>

Отображение в браузере:

Array ( [0] => PHP [1] => HTML [2] => CSS )

Также, чтобы результат вывода функции print_r был более наглядным рекомендую перед использованием функции писать echo "<pre>";, а после функции - echo "</pre>"; Что такое тег pre?

Также в PHP присутствует специальный цикл для обработки массивов - цикл foreach

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; foreach($arr as $value){    echo $value, "<br>";} ?>

Отображение в браузере:

PHPHTMLCSS

Для вывода индекса элемента нужно использовать второй вариант синтаксиса цикла foreach

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; foreach($arr as $key => $value) { // $key - индекс элемента массива, $value - значение элемента массива echo "[{$key}] => {$value} <br/>";}?>

Отображение в браузере:

[0] => PHP[1] => HTML[2] => CSS

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

Для работы с массивами в PHP предусмотрено очень много функций, полный список которых находиться ниже:

array_chunk Разбивает массив на несколько меньших массивов заданного размера
array_combine Создает массив из двух заданных массивов - массива индексов элементов и массива значений
array_count_values Формирует массив, индексами которого являются значения заданного массива, а значениями - число повторений соответствующего значения в заданном массиве
array_diff Формирует массив из тех элементов первого заданного массива, которые отсутствуют в остальных заданных в качестве аргументов функции массива
array_fill Заполняет массив заданным значением
array_intersect Формирует массив из элементов, которые присутствуют во всех заданных массивах
array_key_exists Проверяет наличие заданного индекса в массиве
array_keys Возвращает массив из индексов заданного массива
array_merge Объединяет несколько массивов в один
array_multisort Выполняет сортировку многомерного массива или нескольких одномерных массивов
array_pad Дополняет массив до заданного количества элементов заданным значением
array_pop Возвращает последний элемент массива, одновременно удаляя элемент из массива
array_push Добавляет заданные элементы в конец массива
array_rand Выбирает один или несколько случайно взятых элементов из массива
array_reduce Осуществляет последовательное применение заданной функции к элементам массива, формируя итоговое значение
array_reverse Производит обращение массива - первый элемент становится последним, второй - предпоследним и т.д.
array_search Ищет заданный элемент в массиве и возвращает соответствующим ему индекс
array_shift Возвращает первый элемент массива, одновременно удаляя его из массива с перенумерацией числовых индексов
array_slice Вырезает из массива подмассив заданной длины, начиная с указанного элемента
array_sum Вычисляет сумму всех элементов массива
array_unique Удаляет дублирующиеся значения из массива
array_unshift Добавляет один или несколько элементов в начало массива с перенумерацией числовых индексов
array_walk Вызывает заданную функцию последовательно для каждого элемента массива
array Создает массив из заданных значений или пар индекс - значение
arsort Сортирует массив по убыванию его значений, сохраняя индексы неизменными
asort Сортирует массив по возрастанию его значений, сохраняя индексы неизменными
krsort Сортирует массив по убыванию его индексов
ksort Сортирует массив по возрастанию его индексов
sort Сортирует массив по возрастанию значений его элементов с перенумерацией его индексов
usort Сортирует массив с использование заданной функции сравнения элементов массива
rsort Сортирует массив по убыванию значений его элементов с перенумерацией его индексов
natcasesort Сортирует массив естественным образом без учета регистра массива
natsort Сортирует массив естественным образом с учетом регистра символов
count Возвращает количество элементов в массиве
current Возвращает значение текущего элемента массива
each Возвращает текущие индекс и значение элемента массива и продвигает указатели на следующий элемент
in_array Проверяет, присутствует ли заданное значение в массиве
key Возвращает индекс текущего элемента массива
list Присваивает значения из массива списку переменных
pos Синоним функции current
reset Устанавливает внутренний указатель на первый элемент массива
shuffle Переставляет элементы массива случайным образом
sizeof Синоним функции count

Более подробную информацию про все функции для работы с массивами вы можете найти на странице официальной документации.

Сортировка массивов в PHP

Очень часто нужно отсортировать массив по индексу его элементов, по алфавиту его элементов, по возрастанию, по убыванию и т. д. В PHP для этого существует достойное количество функций, и в этом уроке мы поговорим именно о них.

Первая функция - sort, которая сортирует массив по возрастанию значений его элементов, при этом изменяя индекс после сортировки:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; sort($arr); print_r($arr);?>

Отображение в браузере:

Array ( [0] => CSS [1] => HTML [2] => PHP )

Вторая функция - rsort, которая сортирует массив по убыванию значений его элементов, при этом не изменяя индекс после сортировки:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; rsort($arr); print_r($arr);?>

Отображение в браузере:

Array ( [0] => PHP [1] => HTML [2] => CSS )

Третья функция - ksort, которая сортирует массив по ключам, сохраняя отношения между ключами и значениями:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; ksort($arr); print_r($arr); ?>

Отображение в браузере:

Array ( [0] => PHP [1] => HTML [2] => CSS )

Следующая функция - krsort, которая сортирует массив по убыванию индексов его элементов:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; krsort($arr); print_r($arr); ?>

Отображение в браузере:

Array ( [2] => CSS [1] => HTML [0] => PHP )

Это основные, но не все функции для сортировки массивов, больше функций смотрите
на странице - Функции для работы с массивами в PHP

Навигация по массивам в PHP

Навигация по массива дает возможно узнать текущий , следующий, предыдущий, последний элемента массива.

Для определения текущего элемента массива используют функцию current:

<?phpecho "Now is: ", current($arr), "<br>";?>

Для определения следующего элемента массива используют функцию next:

<?phpecho "Next is: ", next($arr), "<br>";?>

Для определения предыдущего элемента массива используют функцию prev:

<?phpecho "Previously is: ", prev($arr), "<br>";?>

Для определения последнего элемента массива используют функцию end:

<?phpecho "The end is: ", end($arr), "<br>";?>

Для определения первого (возврата указателя) элемента массива используют функцию reset:

<?phpecho "First is: ", reset($arr), "<br>";?>

Пример навигации по массивам:

<?php$arr[0] = "PHP"; $arr[1] = "HTML"; $arr[2] = "CSS"; echo "Now is: ", current($arr), "<br>";echo "Next is: ", next($arr), "<br>";echo "Previously is: ", prev($arr), "<br>";echo "The end is: ", end($arr), "<br>";echo "First is: ", reset($arr), "<br>";?>

Отображение в браузере:

Now is: PHPNext is: HTMLPreviously is: PHPThe end is: CSSFirst is: PHP

 

 


Дата добавления: 2018-06-27; просмотров: 1033; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!