голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
GIT
SEO
Oracle
Python
Программы
Хостинг
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Встроенные функции 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 )
просмотры: 4718, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-07-11 11:07:00
проголосовать:

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






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