голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

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

Допустим у вас есть представление о массиве PHP. Работать с массивами без встроенных функций трудно. Можно описать функцию для определённой задачи. Вы можете потратить несколько часов на написание своих функций. Это плохой путь. Я предлагаю вам прочитать мануал на сайте php.net. Я написал несколько функций и через некоторое время обнаружил аналоги на php.net. Например поиск элемента в массиве легко сделает функция array_search()


//array_search()
$array = array('name' => 'Egor', 
						'site' => 'training.web', 
						'description' => 'обучение php');
$key = array_search('training.web', $array);
echo $key; // site

Функция in_array() возвращает TRUE если элемент найден в массиве. Массив можно хаотично перемешать при помощи функции shuffle(). Если вам нужно вывести цитаты на сайте, то применяйте эту функцию. Часто применяется реверс массива. Функция array_reverse() поможет вам сделать реверс элементов в массиве.


//in_array()
$lang = array("PHP", "RUBY", "HTML", "CSS");
if (in_array("PHP", $lang))
{
    echo "Нашел PHP";
}
//shuffle()
$numbers = range(1, 10);
var_dump($numbers); //array(10)
shuffle($numbers);
print_r($numbers); 
//Array ( [0] => 8 [1] => 4 [2] => 9 [3] => 6 [4] => 5 
//[5] => 7 [6] => 1 [7] => 2 [8] => 10 [9] => 3 )
$numbers = range(1, 10);
//array_reverse()
$numbers = array_reverse($numbers);
print_r($numbers); 
//Array ( [0] => 10 [1] => 9 [2] => 8 [3] => 7 [4] => 6 
//[5] => 5 [6] => 4 [7] => 3 [8] => 2 [9] => 1 )

Самая часто используемая функция - это count(). Она подсчитывает количество элементов массива. Функция sizeof() считается устаревшей. Иногда нужно подсчитать количество одинаковых элементов в массиве. Поможет функция array_count_values(). Вы можете наполнить массив множеством элементов, а потом применить эту функцию. Если описать функцию, то вы потратите массу времени. Очень часто применяют отладочную функцию print_r(). Он выводит весь массив, каким бы большим и сложным он не был. Для того чтобы вытащить последний элемент массива, примените такой код: $numbers[ count($numbers) - 1 ]. Вы также можете применить функцию end().


//count()
$numbers = range(1, 10);
$count = count($numbers);
for($i=0; $i < $count; $i++)
{
    echo $numbers[$i];
} 
//end()
$numbers = range(1, 10);
$end = $numbers[ count($numbers) - 1 ];
$end = end($numbers);
echo $end; 
//array_count_values()
$array = array("PHP", "PHP", "PHP", "RUBY", "RUBY", "HTML");
$countAll = array_count_values($array);
print_r($countAll); 
//Array ( [PHP] => 3 [RUBY] => 2 [HTML] => 1 )

Очень часто применяют функцию implode(). Она объединяет элементы массива в строку. Если вы используете свой разделитель, то вы можете разбить массив и собрать элементы в строку. Между элементами массива можно поставить правый слеш '/'. Вы можете добавить в конец url-адреса такую строку. Если у вас есть строка, похожая на url-адрес, то для разбивки строки используйте функцию explode(). Читайте о функции explode в статье как разбить строку в массив explode() PHP. По разделителю строковые элементы строки превращаются в элементы массива. Одним словом, строковый тип дынных превращается в массив.


//implode()
$array = array('trainingweb.ru', 'egor', 'lesons');
$url = implode('/', $array);
echo $url; //trainingweb.ru/egor/lesons
//explode()
$url = "trainingweb.ru/egor/lesons";
$arr = explode('/', $url);
print_r($arr); 
//Array ( [0] => trainingweb.ru [1] => egor [2] => lesons )

Мне очень нравится функция array_map(). Она применяет callback-функцию ко всем элементам массива. Вы пишите функцию, а потом применяете её в функции array_map(). Вы можете прибавить единицу к каждому элементу массива. Вы можете перебирать массив таким образом или очищать массив от ненужных элементов.


//array_map()
$numbers = range(1, 10);
function plusOne($num)
{
    $num += 1;
    return $num;
}
$arr = array_map('plusOne', $numbers);
print_r($arr); 
//Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 
//[5] => 7 [6] => 8 [7] => 9 [8] => 10 [9] => 11 )

Бывает так, что нужно привести строку к массиву. Это делается просто при помощи функции (array). Я сделаю 2 строковые переменные. Затем переменные превращу в массивы и объединю массивы в один массив. Для объединения массивов в один общий массив подойдёт функция array_merge(). Вы можете массу массивов объединить в один массив: array_merge($arr1, $arr2, $arr3, ...,).


//(array)
$str1 = "trainingweb.ru";
$str2 = "PHP";
$arr1 = (array)$str1;
$arr2 = (array)$str2;
//array_merge
$array = array_merge($arr1, $arr2);
print_r($array); 
//Array ( [0] => trainingweb.ru [1] => PHP )
просмотры: 5829, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-07-11 11:07:00
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.