Меню сайта
Полезные статьи
Авторские права [1]
Антивирусы [6]
Ajax [2]
Joomla [26]
PHP [10]
Базы данных [2]
Заработок в интернете [0]
Раскручиваем сайт сами [20]
Бесплатное ПО для Windows [10]
Переходим по ссылке
Реклама
Интересное
PHP
PHP функции для работы с массивами (1)
PHP
Установка PHP с помощью Microsoft Web Platform Installer (3)
PHP
Установка XAMPP на Windows (1)
Интернет
Sleipnir 3.0.10.4000 (0)
Софт
Kaspersky Anti-Virus 2012 12.0.0.323 Beta (Rus) (0)
Раскручиваем сайт сами
Как сделать так, чтобы Яндекс индексировал 100% страниц вашего сайта (0)
Раскручиваем сайт сами
Влияние домена на SEO-оптимизацию сайта – домены РУ и US (1)
Раскручиваем сайт сами
Оптимизация ключевых слов - как добиться максимального эффекта в продвижении сайта своими силами (0)
Раскручиваем сайт сами
Как увеличить посещаемость вашего сайта при помощи комментариев на сайтах и блогах (0)
Joomla
Компонент Akeeba Backup — создание резервной копии сайта на Joomla (0)
Наши друзья

Бесплатная раскрутка Graffiti Decorations(R) Studio (TM) Site Promoter

статистика
Реклама
Главная » Статьи » PHP

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

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

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

<?php
$string1= 'This is a string created by single quote';
$string2= "This is a string created by double quotes";
?>

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

<?php
//создать переменную-массив $planets
$planets=array();
//сохранить строки, которые являются названиями планет, в переменной-массиве $planets
$planets=array("Mercury","Venus","Earth","Mars","Jupiter","Saturn","Uranus","Neptune");
//вывести в броузер содержимое переменной-массива
var_dump($planets);
?>

Вывод будет таким:

array(8) {

[0]=>string(7) "Mercury"

[1]=>string(5) "Venus"

[2]=>string(5) "Earth"

[3]=>string(4) "Mars"

[4]=>string(7) "Jupiter"

[5]=>string(6) "Saturn"

[6]=>string(6) "Uranus"

[7]=>string(7) "Neptune"

}

Числа от [0] до [7] являются значениями индекса (ключа), которые соответствуют каждой строке, хранящейся в массиве. Строку можно получить при помощи ключа. Предположим, вам необходимо получить планету "Jupiter", ключом будет 4:

<?php
var_dump($planets[4]);
?>

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

<?php
//Пример1. Ассоциативный массив людей и их животных
$favoritepet=array("Mary"=>"Dog","John"=>"Snakes","Paul"=>"Centipede","Peter"=>"Cat");
var_dump($favoritepet);
//Пример2. Ассоциативный массив людей и их вес в килограммах
$weight=array("Mary"=>50,"John"=>60,"Paul"=>80,"Peter"=>71);
var_dump($weight);
?>

Далее приведен вывод вышеуказанных массивов

Пример1:

array(4) {

["Mary"]=>string(3) "Dog"

["John"]=>string(6) "Snakes"

["Paul"]=>string(9) "Centipede"

["Peter"]=>string(3) "Cat"

}

Пример2:

array(4) {

["Mary"]=>int(50)

["John"]=>int(60)

["Paul"]=>int(80)

["Peter"]=>int(71)

}

<b>Функции для работы с массивами строк</b>

1. count() это функция, которую можно использовать для подсчета всех элементов, которые присутствуют в массиве. Например:

<?php
$nameofgirl= array("Amanda","Jenna","Elizabeth");
echo "The number of girl names in the array is ".count($nameofgirl);
?>

Результатом будет 3. Существует функция аналогичная count(), известная как SizeOf(), которая дает тот же результат.

2. Функция array_push() используется при вставке/добавлении новых элементов в существующий массив. Предположим, вы добавите следующие имена Linda,Jenny и Anna в созданную ранее переменную-массив $nameofgirl:

<?php
$nameofgirl=array();
$nameofgirl= array("Amanda","Jenna","Elizabeth");
//добавить новые имена в существующий массив
array_push($nameofgirl, "Linda", "Jenny","Anna");
var_dump($nameofgirl);
?>

А вот вывод (обратите внимание, что новые элементы добавляются в конец массива)

array(6) {

[0]=> string(6) "Amanda"

[1]=> string(5) "Jenna"

[2]=> string(9) "Elizabeth"

[3]=> string(5) "Linda"

[4]=> string(5) "Jenny"

[5]=> string(4) "Anna"

}

Ещё один способ добавить элементы в массив, это приравнять добавляемую строку переменной-массиву:

$arrayvariable[]="String to be inserted to the array"

Добавим пять букв в созданный массив букв алфавита:

<?php
$fiveletters=array("d","e","f","e","f");
$existingarray=array("a","b","c");
//Считываем массив из пяти букв с помощью цикла и добавляем в существующий массив
foreach ($fiveletters as $value) {
$existingarray[]=$value;
}
//выводим обновленные элементы в массиве $existingarray
var_dump($existingarray);
?>

Вот результат:

array(8) {

[0]=>string(1) "a"

[1]=>string(1) "b"

[2]=>string(1) "c"

[3]=>string(1) "d"

[4]=>string(1) "e"

[5]=>string(1) "f"

[6]=>string(1) "e"

[7]=>string(1) "f"

}

3. Функция in_array() проверяет, присутствует ли определенная строка в массиве.

Предположим, необходимо проверить присутствует ли имя "Linda" в массиве $nameofgirl:

<?php
$nameofgirl=array();
$nameofgirl= array("Amanda","Jenna","Elizabeth");
array_push($nameofgirl, "Linda", "Jenny","Anna");
//проверяем присутствует ли имя "Linda" в массиве
if (in_array("Linda",$nameofgirl)) {
echo "Yes the name Linda is found on the array";
} else {
echo "Sorry but the name Linda is not on the array";
}
?>

Приведенный выше код выводит "Yes the name Linda is found in the array".

4. Функция array_unique() удаляет из массива повторяющиеся значения.

Допустим, у нас есть массив цветов:

<?php
//Массив цветов, элемент "red" повторяется
$fivecolors=array("blue","red","yellow","red","magenta");
var_dump($fivecolors);
?>

Ниже приведен дамп этого массива (обратите внимание на значение индекса (ключа) каждого элемента строки):

array(5) {

[0]=>string(4) "blue"

[1]=>string(3) "red"

[2]=>string(6) "yellow"

[3]=>string(3) "red"

[4]=>string(7) "magenta"

}

Теперь удалим дубликаты с помощью функции array_unique:

<?php
$fivecolors=array("blue","red","yellow","red","magenta");
//удаляем повторяющиеся значения в массиве
$unique=array_unique($fivecolors);
//выводим в броузер
var_dump($unique);
?>

Далее приведен дамп результатов работы функции array_unique. Обратите внимание, что элемент с индексом 3 исчез, поскольку является дубликатом.

array(4) {

[0]=>string(4) "blue"

[1]=>string(3) "red"

[2]=>string(6) "yellow"

[4]=>string(7) "magenta"

}

5. Функция array_values() используется для устранения любых разрывов в индексах, вызванных выполнением array_unique. В предыдущем примере, вы можете заметить значения индексов 0,1,2 и 4 (3 удален, потому что является дубликатом). Порядок индексов можно восстановить в 0,1,2,3,4 с помощью функции array_values():

<?php
$fivecolors=array("blue","red","yellow","red","magenta");
$unique=array_unique($fivecolors);
//восстанавливает нумерацию индексов, удаляя разрывы в последовательности
$resettedindex= array_values($unique);
//вывод в браузер
var_dump($resettedindex);
?>

Будет выведено:

array(4) {

[0]=> string(4) "blue"

[1]=> string(3) "red"

[2]=> string(6) "yellow"

[3]=> string(7) "magenta"

}

Теперь индексы имеют правильную последовательность (0,1,2,3)

6. Функция array_change_key_case() может быть использована для приведения всех элементов в массиве к единому регистру. Иногда вы будете обрабатывать в массиве строковые элементы, которые не имеют единого регистра (например, строки с верхнем и нижнем регистре). Если вам нужно сделать все строки "в верхнем регистре" или "в нижнем регистр", то можете использовать эту функцию.

<?php
$mixedcase=array("bLuE"=>1,"RED"=>2,"Yellow"=>3,"mAgENTA"=>4);
//Преобразовать все строки в массиве в верхний регистр
$uppercase= array_change_key_case($mixedcase, CASE_UPPER);
//вывести содержимое массива
var_dump($uppercase);
?>

Вывод:

array(4) {

["BLUE"]=>int(1)

["RED"]=>int(2)

["YELLOW"]=>int(3)

["MAGENTA"]=>int(4)

}

Примечание: Если не указать CASE_UPPER, то по умолчанию будет использоваться нижний регистр.

7. Функция array_count_values возвращает частоту появления элементов в массиве. Пример:

<?php
$fivecolors=array("blue","red","yellow","red","magenta");
//возвращает частоту появления элементов
$frequency=array_count_values($fivecolors);
var_dump($frequency);
?>

При этом будет выведен следующий результат:

array(4) {

["blue"]=>int(1)

["red"]=>int(2)

["yellow"]=>int(1)

["magenta"]=>int(1)

}

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

<?php
$fivecolors=array("blue","red","yellow","red","magenta");
$frequency=array_count_values($fivecolors);
//возвращает частоту появления только красного цвета
echo $frequency["red"];
?>

8. Функция array_search будет искать данную строку в переменной-массиве и возвращать индекс, если он найден. Пример:

<?php
$fivecolors=array("blue","red","yellow","magenta");
//Ищет синий цвет и возвращает ключ
$key = array_search('blue', $fivecolors);
echo $key;
?>

Результатом будет 0, поскольку синий (blue) является первым элементом массива. Ещё пример:

<?php
$fivecolors=array("blue","red","yellow","magenta");
//Ищет белый цвет и возвращает ключ
$key = array_search('white', $fivecolors);
echo $key;
?>

Результатом будет False/Null или логический 0, потому что белый цвет не входит в массив. Имейте в виду, что 0 может быть результатом двух возможных сценариев: в первом случае цвет действительно существует в массиве, и находится в первом элементе. Во втором сценарий функция array_search не может найти строку в массиве и возвращает то, что может быть интерпретировано как 0/False или null.

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

<?php
$fivecolors=array("blue","red","yellow","red","magenta");
//Найти белый цвет и вернуть ключ
//Проверить, что белый цвет присутствует в массиве
if (in_array("white",$fivecolors)) {
//белый цвет есть в массиве, теперь получить ключ
$key = array_search('white', $fivecolors);
echo $key;
} else {
//белого цвета нет в массиве
echo "The key does not exist for this color";
}
?>

9. Функция asort сортирует строковые элементы переменной- массива в алфавитном порядке и поддерживает соответствующий индекс.

<?php
$favoritebands=array("Mary"=>"Nirvana","John" =>"Metallica","Paul"=>"Beatles","Peter"=>"Who","Alice"=>"Greenday","Chris"=>"Black Sabbath");
foreach ($favoritebands as $key => $val) {
echo "$key = $val<br />";
}
?>

Результат (без сортировки)

Mary = Nirvana

John = Metallica

Paul = Beatles

Peter = Who

Alice = Greenday

Chris = Black Sabbath

Сортировка элементов массива по именам групп:

<?php
$favoritebands=array("Mary"=>"Nirvana","John" =>"Metallica","Paul"=>"Beatles","Peter"=>"Who","Alice"=>"Greenday","Chris"=>"Black Sabbath");
//сортирует строковые элементы и поддерживает ассоциацию с индексом
asort($favoritebands);
foreach ($favoritebands as $key => $val) {
echo "$key = $val<br />";
}
?>

Теперь отсортированный результат:

Paul = Beatles

Chris = Black Sabbath

Alice = Greenday

John = Metallica

Mary = Nirvana

Peter = Who

10. array_merge объединяет элементы двух и более массивов

<?php
$fivecolors=array("blue","red","yellow","magenta");
$threecolors=array("white","black","green");
//Объединить два массива
$eightcolors=array_merge($fivecolors,$threecolors);
var_dump($eightcolors);
?>

Результат:

array(7) {

[0]=>string(4) "blue"

[1]=>string(3) "red"

[2]=>string(6) "yellow"

[3]=>string(7) "magenta"

[4]=>string(5) "white"

[5]=>string(5) "black"

[6]=>string(5) "green"

}

11. Функция array_pop извлекает последний элемент из массива. Это полезно, когда необходимо удалить последний элемент из массива:

<?php
$animals=array("bear","lion","cheetah","tiger","wolf");
//удаляем последний элемент
$pop_out = array_pop($animals);
//показать удаленный элемент
var_dump($pop_out);
//вывести обновленный массив animals
var_dump($animals);
?>

Вывод для последнего удаленного элемента:

string(4) "wolf"

Вывод обновленного массива animals (элемента wolf нет, он был удален из массива)

array(4) {

[0]=>string(4) "bear"

[1]=>string(4) "lion"

[2]=>string(7) "cheetah"

[3]=>string(5) "tiger"

}



Источник: http://live-code.ru
Категория: PHP | Добавил: defaultNick (19.02.2012)
Просмотров: 3174 | Комментарии: 1 | Теги: Примеры php, одномерные массивы, массив данных, двумерные массивы, массивы php, ввод массива | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Расширенный поиск
Smile :D
Реклама
Интересное
Вход