Допустим у вас есть представление о массиве 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('training-web.ru', 'egor', 'lesons');
$url = implode('/', $array);
echo $url;
//training-web.ru/egor/lesons//explode()
$url = "training-web.ru/egor/lesons";
$arr = explode('/', $url);print_r($arr);
//Array ( [0] => training-web.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 = "training-web.ru";
$str2 = "PHP";
$arr1 = (array)$str1;
$arr2 = (array)$str2;
//array_merge$array = array_merge($arr1, $arr2);
print_r($array);
//Array ( [0] => training-web.ru [1] => PHP )