Функции массива PHP (открыто) | Кодементор

Давайте внесем ясность!

Если вы хотите стать разработчиком PHP, вам нужно изучить функции работы с массивами.

Если вы PHP-разработчик, вам необходимо знать функции работы с массивами.

Несмотря на то, что знать их все не обязательно, наличие основ и знание того, что они существуют, сэкономит вам огромное количество времени в вашей карьере.

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

Введение: что такое массивы?

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

Прочтите мою статью о составных переменных в PHP, чтобы узнать больше

Массив может содержать данные любого типа, каждый из элементов может быть выделен и прочитан.

Массивы могут содержать числа, строки и другие массивы.

Количество операций, которые вы можете выполнять над массивом, не ограничено.

И по этой причине PHP предоставляет широкий спектр встроенных функций, которые позволяют вам читать и редактировать элементы внутри.

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

Уверен, вы многому научитесь из этих примеров:

множество()

Это конструкция PHP, невероятно простая для понимания. принимает список значений или пар ключ-значение и создает массив.

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
$disney = array ( 
    "dwarfs" => array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'), 
    "originals" => array("Mickey Mouse","Pete", "Goofy", "Minnie Mouse", "Pluto") );

is_array()

Он принимает переменную в качестве атрибута и возвращает логическое значение, отвечающее на вопрос: является ли этот атрибут массивом?

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'); 
if (is_array($dwarfs)){
    echo '$dwarfs is an array'; 
}

in_array()

Эта функция PHP проверяет, присутствует ли искомый элемент в массиве или нет.

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
if (in_array("Snow White", $dwarfs)) {
    echo "Snow White is not a dwarf"; 
}

слияние_массива()

Функция array_merge() объединяет один или несколько массивов в уникальный массив.

В случае, если разные элементы имеют один и тот же ключ, последний переопределяет другие элементы.

Эта функция массива может использоваться для сброса количества индексов массива (если клавиши цифровые)

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'); 
$originals = array("Mickey Mouse","Pete", "Goofy", "Minnie Mouse", "Pluto");
array_merge($dwarfs, $originals); 
Array ( 
    [0] => Doc 
    [1] => Grumpy 
    [2] => Happy 
    [3] => Sleepy 
    [4] => Dopey 
    [5] => Bashful 
    [6] => Sneezy 
    [7] => Mickey Mouse 
    [8] => Pete 
    [9] => Goofy 
    [10] => Minnie Mouse 
    [11] => Pluto) 
$dwarfs = array(3 => 'Doc', 4 =>'Grumpy', 5 => 'Happy'); array_merge($dwarfs); Array ( [0] => "Doc" [1] => "Grumpy" [2] => "Happy" )

array_keys()

array_keys() возвращает ключи из массива.

Они могут быть как строками, так и числами.

Второй атрибут этой функции называется search_value и если он указан, функция возвращает только ключи для этого значения

$disney = array ("dwarf"  => 'Grumpy', "originals" => "Mickey Mouse");
array_keys($disney); 
Array (
    [0] => dwarfs
    [1] => originals ) 
$dwarfs = array('Doc', 'Grumpy', 'Doc', 'Sleepy', 'Doc', 'Bashful', 'Sneezy'); 
array_keys($dwarfs, "Doc"); 
Array (
    [0] => 0     
    [1] => 2     
    [2] => 4 
) 
$disney = array (
    "dwarfs"  => array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'),
    "originals" => array("Mickey Mouse","Pete", "Goofy", "Minnie Mouse", "Pluto") 

array_keys($disney);
Array (
    [0] => dwarfs
    [1] => originals 
)

array_key_exists()

Эта функция проверяет наличие определенного ключа или индекса в массиве.

Занимает два параметра, первый — это ключ, который вы хотите найти, второй — это массив.

Значение, возвращаемое этой функцией, зависит от результата и имеет логический тип, если факт, он возвращает true, если значение существует, или false, если его нет.

Очень полезно в операторах условий

$disney = array ("dwarf"  => 'Grumpy', "originals" => "Mickey Mouse"); 
if (array_key_exists('dwarf', $disney)) {
    echo "the array disney contains the key dwarf"; 
}

массив_значений()

массив_значений Функция принимает массив в качестве атрибута и возвращает массив со всеми значениями, индексирующими их в числовом виде.

Это полезно, если вы хотите удалить ключи из массива или преобразовать массив из ассоциативного в числовой.

$disney = array ("dwarf"  => 'Grumpy', "originals" => "Mickey Mouse");
print_r(array_values($disney));
Array (     
    [0] => Grumpy     
    [1] => Mickey Mouse 
)

array_count_values()

Давайте представим, что у вас есть массив имен,

и вы хотите узнать, какое самое распространенное имя из этого списка.

Функция array_count_values() принимает массив в качестве атрибута и возвращает массив, который имеет значение атрибута в качестве ключа и количество найденных экземпляров в качестве значения.

Давайте посмотрим пример;

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Doc', 'Dopey', 'Doc', 'Grumpy');
print_r(array_count_values($dwarfs ));
Array (     
    [Doc] => 3     
    [Grumpy] => 2     
    [Happy] => 1 
)

массив_сдвиг()

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

Все числовые клавиши в массиве будут изменены, чтобы начать отсчет с нуля, в то время как буквенные клавиши в ассоциативном массиве не будут затронуты.

Примечание: функция array_shift() требует процесса переиндексации массива, поэтому она должна выполняться для всех элементов и индексироваться.

Это означает, что эта практика довольно медленная.

Для ускорения процесса вы можете использовать массив_реверс(), тогда массив_поп()который не требует переиндексации массива и сохранит ключи, если вы хотите.

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
$dwarf = array_shift($dwarfs); 
print_r($dwarfs); 
Array (      
    [0] => Grumpy      
    [1] => Happy      
    [2] => Sleepy      
    [3] => Dopey      
    [4] => Bashful      
    [5] => Sneezy  
) 

array_unshift()

array_unshift() помещает элементы, переданные как атрибуты, в начало выбранного массива.

Список элементов настраивается в целом таким образом, чтобы префиксные элементы остаются в том же порядке.

Все числовые клавиши в массиве будут изменены, чтобы начать отсчет с нуля, в то время как буквенные клавиши не будут изменены.

Вы можете вставить столько элементов, сколько хотите.

$dwarfs = array('Sleepy', 'Dopey', 'Bashful', 'Sneezy'); 
array_unshift($dwarfs, 'Doc', 'Grumpy', 'Happy'); 
print_r($dwarfs); 
Array (      
    [0] => Doc     
    [1] => Grumpy     
    [2] => Happy      
    [3] => Sleepy      
    [4] => Dopey      
    [5] => Bashful      
    [6] => Sneezy  
)

array_push()

Как подсказывает название array_push() помещает переменные, переданные как атрибут, в конец массива.

Он имеет тот же эффект, что и: $массив[] знак равно

Длина матрицы увеличивается в зависимости от количества вставленных переменных.

если вы используете array_push() чтобы добавить в массив только один элемент, лучше использовать $массив[] знак равно потому что вам не нужно перегружать вызов с помощью функции.

Обратите внимание, что в отличие от $вар[] знак равно где создается новый массив, array_push() функция генерирует предупреждение, если первый аргумент не является массивом.

$dwarfs = array('Sleepy', 'Dopey', 'Bashful', 'Sneezy'); 
array_push($dwarfs, 'Doc', 'Grumpy', 'Happy'); 
print_r($dwarfs); 
Array (      
    [0] => Sleepy      
    [1] => Dopey      
    [2] => Bashful      
    [3] => Sneezy      
    [4] => Doc     
    [5] => Grumpy     
    [6] => Happy  
)

массив_поп()

массив_поп() удаляет и возвращает значение последнего элемента в массиве, сокращая массив элемента.

Простыми словами, функция массив_поп() удаляет последний элемент массива

Эта функция восстановит указатель ввода массива после его использования.

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
$dwarf = array_pop(dwarfs); 
print_r(dwarfs); 
Array (      
    [0] => Doc     
    [1] => Grumpy     
    [2] => Happy      
    [3] => Sleepy      
    [4] => Dopey      
    [5] => Bashful  
) 

массив_срез()

Функция массив_срез() принимает четыре атрибута (из них 2 обязательных) и возвращает последовательность элементов из указанного массива по правилам, заданным параметрами смещения и длины.

Четыре параметра:

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

Обратите внимание, что смещение указывает позицию в массиве, а не ключ.

Длина
Длина необязательна. Если ее не указать, в последовательности будет все от смещения до конца массива.

Если длина задана и положительна, то в последовательности будет столько элементов, сколько она содержит.

Если задана отрицательная длина, последовательность остановит многие элементы с конца массива.

Атрибут save_keys
save_keys атрибут является логическим, функция массив_срез() переупорядочивает и восстанавливает индексы целочисленного массива по умолчанию. что означает, что они собираются начать с нуля.

Вы можете изменить это поведение, установив save_keys на ИСТИНА. Строковые ключи всегда сохраняются, независимо от этого параметра.

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
$output = array_slice($dwarfs, 2);


array_slice($dwarfs, -2, 1);   


Array (
    [0] => Happy
    [1] => Sleepy 
) 

print_r(array_slice($input, 2, -4, true)); 
Array (
    [2] => Happy
    [3] => Sleepy 
)

array_splice()

array_splice() Функция удаляет элементы из массива и, если указано, заменяет его новыми элементами.

Принимает четыре параметра (из них 2 обязательных),

числовые ключи в исходном массиве не сохраняются.

Параметры:

Исходный массив

Так называемой offset, который является обязательным параметром типа integer если число положительное, функция удаляет часть с начала массива, если это отрицательное число, оно начинает это число с конца указанного массива.

Длина представляет собой целочисленное значение,

он может быть опущен, положительным или отрицательным.

Если опущено, функция удалит все, начиная с указанной позиции смещения до конца массива,

если число положительное array_splice() удалит такое количество элементов массива, как указано.

Если отрицательный (обратите внимание здесь), функция остановится так далеко от последнего элемента.

Вы можете использовать количество ($ ввод) чтобы удалить все элементы со смещения до конца массива.

Замена массива это параметр, который, если он указан, заменит удаленный элемент, если замена представляет собой только один элемент, он может быть строкой и не обязательно должен быть массивом.

array_splice() возвращает массив с удаленными элементами.

Обратите внимание на различные примеры ниже:

$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'); array_splice($dwarfs, 2); 


$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'); array_splice($dwarfs, 1, -1); 


$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
array_splice($dwarfs, 1, count($dwarfs), "Mickey Mouse"); 


$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
array_splice($dwarfs, -1, 1, array("Mickey Mouse", "Pete")); 


$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
array_splice($dwarfs, 3, 0, "Mickey Mouse"); 

Функция массив_поиск() ищет значение внутри массива элементов.

Если он успешно находит элемент, он возвращает ключ первого найденного элемента (только первого), если он не находит ни одного элемента, он возвращает false или аналогичный.

Эта функция имеет три параметра:

Первое существо элемент для поиска может быть смешанного типа.

Второй параметр — фактический. массив для поиска.

Третий параметр не является обязательным и является логическое значение, представляющее строгость поиска ,

по умолчанию установлено значение false, но если установлено значение true, array_search() будет искать идентичные элементы (одинаковое значение и тот же тип).

$dwarfs = array(
    0 => 'Doc', 
    1 => 'Grumpy', 
    2 => 'Happy', 
    3 => 'Sleepy', 
    4 => 'Dopey', 
    5 => 'Bashful', 
    6 => 'Sneezy'
); 
$key = array_search('Happy', $dwarfs); 

$key = array_search('Grumpy', $dwarfs);   

$key = array_search('Mickey Mouse', $dwarfs);   

массив_карта()

На мой взгляд, эта функция довольно сложная,

массив_карта() принимает созданную пользователем функцию (обычно называемую функцией обратного вызова) в качестве первого параметра и применяет этот обратный вызов к каждому из элементов, переданных в качестве второго параметра сам array_map();

Количество параметров, установленных в обратном вызове, должно быть равно количеству массивов, переданных в качестве параметра функции массив_карта() функция.

function uppercase($dwarf) {
    return strtoupper($dwarf); 
} 
$dwarfs = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy');
$uppercase = array_map("uppercase", $dwarfs); 
print_r($uppercase); 
Array (      
    [0] => DOC     
    [1] => GRUMBY     
    [2] => HAPPY     
    [3] => SLEEPY     
    [4] => DOPEY     
    [5] => BASHFUL 
) 


function matchCharacter($character, $brand) {     
    return("The character $character belongs to $brand"); 
} 
$character = array('Doc', 'Mickey Mouse', 'Happy', 'Sleepy', 'Pete', 'Goofy', 'Sneezy'); 
$brand = array("dwarfs","original", "dwarfs", "dwarfs", "original", "original", "dwarfs") 
$result = array_map("matchCharacter", $character, $brand); 
print_r($result); 
Array (      
    [0] => The character Doc belongs to dwarfs     
    [1] => The character Mickey Mouse belongs to original     
    [2] => The character Happy belongs to dwarfs     
    [3] => The character Sleepy belongs to dwarfs     
    [4] => The character Pete belongs to original     
    [5] => The character Goofy belongs to original     
    [6] => The character Sneezy belongs to dwarfs 
)

array_unique()

Эта функция удаляет и возвращает массив без повторяющихся значений.

Он принимает два параметра.

первый параметр является обязательным, и это массив, который вам нужно оценить ;

второй параметр обычно называют sort_flag и он используется для изменения поведения сортировки указанного массива.

Доступные флаги:
SORT_REGULAR которые обычно сравнивают элементы (не меняют типы);
SORT_NUMERIC которые сравнивают элементы численно;
SORT_STRING которые сравнивают элементы как строки;
SORT_LOCALE_STRING которые сравнивают элементы как строки на основе текущей локали.

Эта функция массива не будет работать с многомерными массивами.
Вот краткое объяснение того, что многомерные массивы находятся.

$dwarfs = array("a" => 'Doc', 'Grumpy', "b" => 'Doc', 'Sleepy', 'Grumpy');
$result = array_unique($dwarfs); 
print_r($result); 
Array (     
    [a] => Doc     
    [0] => Grumpy     
    [1] => Sleepy 
)

array_diff()

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

В итоге,

он возвращает значения, присутствующие в первом массиве, которых нет ни в одном из других массивов.

Обратите внимание, что элементы считаются равными тогда и только тогда, когда первая оценка === даст результат true.

$dwarfsA = array('Doc', 'Grumpy', 'Happy', 'Sleepy', 'Dopey', 'Bashful', 'Sneezy'); 
$dwarfsB = array('Doc', 'Grumpy', 'Happy', 'Dopey', 'Sneezy'); 
$result = array_diff($dwarfsA, $dwarfsB); 
print_r($result); 
Array (     
    [3] => Sleepy     
    [5] => Bashful 
)

При необходимости вы можете проверить более глубокие измерения, используя array_diff($dwarfsA[0]$dwarfsB[0]).

Заключение части 1

Функции массива — это тема, которая простирается почти до бесконечности.

Вы делали заметки?

Это огромный укус, который нужно съесть одним махом,

по этой причине я разделил статью на серию разных постов в блоге.

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

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

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

Куда пойти отсюда?

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

Основы PHP для опытных веб-разработчиков — есть здесь новички? все кажется громоздким? не беспокойтесь, эта серия проведет вас от 0 до готовности создать свое первое веб-приложение.

Полное руководство по объектно-ориентированному программированию — Вы знаете основы языков, теперь пришло время заняться этим серьезно.

PHP 7.3 и его новые возможности — будьте в курсе последних событий, если вы хотите быть актуальным в веб-разработке

Руководство по 24 PHP-фреймворкам — Вы чувствуете себя достаточно хорошо? Повысьте свои навыки, выбрав свой первый PHP-фреймворк.

***

Научитесь программировать, приобретите новый навык, устройтесь на новую работу

Какой бы ни была ваша цель — Treehouse поможет вам достичь ее

В настоящее время они делают бесплатное 4-месячное предложение (стоимостью 100 долларов).

Посмотри на это!.

(Партнерские ссылки)

подписка-Medium.jpg

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *