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




Скачать 82.84 Kb.
НазваниеPhp –функции для работы с массивами
Дата публикации15.07.2013
Размер82.84 Kb.
ТипДокументы
5-bal.ru > Информатика > Документы

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



Стыдно признаться, но я лишь недавно обнаружила наличие некоторых замечательных функций PHP, предназначенных для работы с массивами. Дабы исправить ситуацию, решено выписать такие функции в шпаргалку – может они применяются и не так часто, но предупрежден – значит вооружен, ни к чему изобретать, когда он уже стоит у подъезда.
Итак, для начала пройдемся по наиболее востребованным функциям.
count()
Функция count() предназначена для подсчета количества элементов массива. К слову сказать, применить эту функцию можно к любой переменной, если это не будет массив, count просто вернет 1, и, конечно же, если передать ей null – вернется 0. Для подсчета элементов многомерного массива необходимо указать дополнительный параметр COUNT_RECURSIVE.
[sourcecode language=”PHP” gutter=”true”]

$test_arr = array("fruits" => array(

"2"=>"apple", "3"=>"orange"),

"10"=>"carrot");

echo count($test_arr) . "
";

// результат 2

echo count($test_arr, COUNT_RECURSIVE);

// результат 4

[/sourcecode]
Функция array_sum()

Функция array_sum() предназначена для вычисления суммы элементов массива. Синтаксис функции array_sum(массив).

[sourcecode language=”PHP” gutter=”true”]

$test_arr =array(12, 3, 15, 8, 1, 1.5);

print_r(array_sum($test_arr));

//Результат: 40.5

[/sourcecode]

PHP-функции поиска в массиве



in_array()
Функция in_array() применяется для поиска в массиве определенного значения. Вызов ее такой: in_array("что ищем", "где ищем", ["ограничение на тип"]);
Здесь ограничение на тип – опциональный параметр. Если он задан как true, то поиск элемента будет осуществляться не только по значению, но и по типу. Важно: если ищется строка, то поиск чувствителен к регистру!
[sourcecode language=”PHP” gutter=”true”]

$test_arr = array("orange","apple","PEAR","pineapple");

if (in_array("PEAR",$test_arr, true))

echo "Есть груша!
";

// выведет сообщение "Есть груша!"

if (in_array("Pear",$test_arr))

echo "Есть груша!
";

// не будет выведено ничего -

// в массиве есть PEAR а не Pear

[/sourcecode]


Искать можно не только отдельные значения, но и массивы – такая возможность была добавлена в PHP с версии 4.2.0.
[sourcecode language=”PHP” gutter=”true”]

$test_arr = array("apple","orange",array("pineapple","pear"),"plum");

if (in_array(array("pineapple","pear"),$test_arr))

echo "Есть ананас и груша!
";

[/sourcecode]


array_search()
Функция array_search() выполняет схожие с предыдущей функцией действия, но возвращает уже значение ключа в случае, если нужный элемент найден, и false – если нет. Синтаксис у обеих функций одинаков: array_search("что ищем", "где ищем", ["ограничение на тип"]);
Так же как и в функции in_array() в array_search() при поиске с ограничением на тип сравниваются и типы значений. Поиск чувствителен к регистру.
[sourcecode language=”PHP” gutter=”true”]

$test_arr = array("", "apple","orange",array("pineapple","pear"),"plum");

if (!array_search("apple",$test_arr))

echo "Яблока нет!
";

else

{

$k = array_search("apple",$test_arr);

echo "Яблоко указано $k-м!";

//будет выведено: «Яблоко указано 1-м!»

}

[/sourcecode]
До PHP версии 4.2.0 при отсутствии в массиве искомого элемента функция возвращала ошибку или NULL.
При наличии в массиве нескольких элементов, соответствующих поиску, функция array_search() вернет значение ключа только первого найденного элемента. А если нужно найти все такие элементы? Тут на помощь приходит функция array_keys().
Функция array_keys()
Функция array_keys() применяется не так часто, как предыдущие. Замечательна она тем, что выбирает все ключи массива. С помощью дополнительного аргумента можно получить список ключей с интересующим значением. Вызов этой функции таков:

array_keys ("массив", ["значение для поиска"])
Функция array_keys() возвращает массив с числовыми индексами, где в качестве значений записаны найденные ключи.
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("pear","apple","pineapple","plum", "pear","orange");

$pear_keys = array_keys($test_arr,"pear");

echo "Груша записана ".

count($pear_keys) ." раза:
";

foreach ($pear_keys as $item){

echo "под номером $item
";

}

//будет выведено:

//"Груша записана 2 раза:

//под номером 0

//под номером 4"

[/sourcecode]

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

Функция array_unique()
Массивы могут содержать неуникальные значения – что-то может и повториться. Избавиться от дублирующих элементов поможет функция array_unique().

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

[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("pineapple", "pear","apple", "pear", "pineapple","plum", "pear", "orange");

print_r(array_unique($test_arr));

// получим следующее:

// Array ( [0] => pineapple [1] => pear [2] => apple [5] => plum [7] => orange )

[/sourcecode]

PHP-функции сортировки массива



Функция sort()
Синтаксис функции sort(): sort (массив [, флаги])
Функция упорядочивает значения массива по возрастанию, при этом все существовавшие ключи заменяются числовыми индексами. Возвращает функция либо true, либо false.
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange");

print_r($test_arr);

//Начальный массив:

//Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange )

sort($test_arr);

print_r($test_arr);

//Результат

//Array ( [0] => apple [1] => orange [2] => pear [3] => pineapple [4] => plum )

[/sourcecode]


Функция принимает дополнительные параметры:

SORT_REGULAR – сравнивать элементы массива обычным образом;

SORT_NUMERIC – сравнивать элементы массива как числа;

SORT_STRING – сравнивать элементы массива как строки.

Функции asort(), rsort(), arsort()
Синтаксис этих функций такой же, как у функции sort(), они так же принимают дополнительный параметры. Фунция asort() сохраняет индексы элементов при сортировке, функция rsort() упорядочивает элементы в обратном порядке, а arsort() отсортирует массив в обратном порядке с сохранением ключей.
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange");

print_r($test_arr);

//Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange )

asort($test_arr);

print_r($test_arr);

//Array ( [bc] => apple [df] => orange [ac] => pear [ab] => pineapple [cd] => plum )

arsort($test_arr);

print_r($test_arr);

//Array ( [cd] => plum [ab] => pineapple [ac] => pear [df] => orange [bc] => apple )

rsort($test_arr);

print_r($test_arr);

//Array ( [0] => plum [1] => pineapple [2] => pear [3] => orange [4] => apple )

[/sourcecode]


Функции ksort() и krsort()
Функции ksort() и krsort() упорядочивают элементы массива по значениям ключей в прямом и обратном порядке соответственно. Синтаксис функций аналогичен функции sort().
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange");

print_r($test_arr);

//Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange )

ksort($test_arr);

print_r($test_arr);

//Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange )

krsort($test_arr);

print_r($test_arr);

//Array ( [df] => orange [cd] => plum [bc] => apple [ac] => pear [ab] => pineapple )

[/sourcecode]
Функции usort() или uksort()
Функции usort() или uksort() предназначены для сортировки массива с помощью пользовательской функции. Функция usort() упорядочивает значения элементов массива, а uksort() – значения ключей.

Синтаксис функций:

usort (массив , сортирующая функция)

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

  1. целое число, меньшее нуля, если первый аргумент меньше второго;

  2. число, равное нулю, если два аргумента равны;

  3. число большее нуля, если первый аргумент больше второго.


Для сортировки без изменения значению ключей у функции usort() существует аналог – функция uasort().
[sourcecode language=”PHP” gutter=”true”]

// массив выглядит таким образом:

$test_arr = array("Audi R8" => array ("Audi", 2006),

"Renault Logan" => array("Renault",2007),

"Opel Vectra" => array ("Opel",1999));
//Сортируем массива с помощью пользовательской функции compare()

uasort($test_arr,"compare");
foreach ($test_arr as $key => $auto)

{

echo "$auto[0]: \"$key\"
";

}

//пользовательская функция сортировки по дате появления модели авто

function compare($a,$b)

{

if ($a[1] < $b[1]) return -1;

elseif ($a[1]==$b[1]) return 0;

else return 1;

}

//Результат:

//Opel: "Opel Vectra"

//Audi: "Audi R8"

//Renault: "Renault Logan"

[/sourcecode]

Применение произвольной функции ко всем элементам массива


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

Пользовательская функция, как правило, имеет два аргумента, в которые поочередно передаются значение и ключ элементов массива. Может быть указан и третий аргумент – его смысл пользователь определяет самостоятельно.
Если необходимо обработать действительные значения массива, а не копии, аргументы в функцию следует передавать по ссылке, но при этом нельзя производить действия, изменяющие сам массив (добавлять-удалять элементы) – в этом случае результат работы функции array_walk() окажется неопределенным.
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("Ann"=>"pineapples", "Ben"=>"pears","Peter"=>"apples", "Fill"=>"plums", "Jill"=>"oranges");
function my_print($val,$key,$data)

{

echo "$data \"$key\" likes $val
";

}

array_walk($test_arr,"my_print","Predicate: ");

//Результат:

redicate: "Ann" likes pineapples

Predicate: "Ben" likes pears

Predicate: "Peter" likes apples

Predicate: "Fill" likes plums

Predicate: "Jill" likes oranges

[/sourcecode]

В следующем примере значение элемента массива передается по ссылке, что позволяет внести в массив изменения:
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange");
// применить к элементам массива
function my_walk_function(&$val,$key){

$key = "Person: " .$key ."
";

$val = "Fruit: \"" . $val ."\"
";

echo $key.$val;

}

array_walk($test_arr,"my_walk_function");

print_r($test_arr);

//Результат:

//Person: Ann

//Fruit: "pineapple"

//Person: Ben

//Fruit: "pear"

//Person: Peter

//Fruit: "apple"

//Person: Fill

//Fruit: "plum"

//Person: Jill

//Fruit: "orange"

//Array ( [Ann] => Fruit: "pineapple"

//[Ben] => Fruit: "pear"

//[Peter] => Fruit: "apple"

//[Fill] => Fruit: "plum"

//[Jill] => Fruit: "orange"

//)

[/sourcecode]


Выделение подмассива


Функция array_slice()
Функция array_slice() предназначена для выделения из массива его части. Синтаксис функции: array_slice (массив, номер_элемента [, длина]).
В результате ее выполнения будет получен новый массив, состоящих из элементов начального массива, начиная с элемента, указанного в качестве второго параметра. При этом положительное значение второго параметра указывает на номер элемента относительно начала массива, отрицательный – на номер элемента с конца массива. Третий параметр опционален, он определяет количество выделяемых элементов, параметр может иметь и отрицательное значение, в этом случае с конца массива будет удалено количество элементов, равное модулю параметра длина.
[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange");
$sub_test_arr = array_slice($test_arr,2);

print_r($sub_test_arr);

//Результат:

//Array ( [Peter] => apple [Fill] => plum [Jill] => orange )
$sub_test_arr = array_slice($test_arr,-2);

print_r($sub_test_arr);

//Результат

//Array ( [Fill] => plum [Jill] => orange )
$sub_test_arr = array_slice($test_arr,1, 2);

print_r($sub_test_arr);

//Результат

//Array ( [Ben] => pear [Peter] => apple )
$sub_test_arr = array_slice($test_arr,1, -3);

print_r($sub_test_arr);

//Результат

//Array ( [Ben] => pear )

[/sourcecode]

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

Синтаксис функции: array_chunk ( массив, размер [, сохранять_ключи])
Функция array_chunk() возвращает многомерный массив, элементами которого являются выделенные подмассивы. Для сохранения ключей начального массива третий параметр необходимо задать как true.

[sourcecode language=”PHP” gutter=”true”]

$test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange");

$arr = array_chunk($test_arr, 2, true);

print_r($arr);

//Результат:

//Array(

//[0] => Array ( [Ann] => pineapple [Ben] => pear )

//[1] => Array ( [Peter] => apple [Fill] => plum )

//[2] => Array ( [Jill] => orange )

//)

[/sourcecode]

Добавить документ в свой блог или на сайт

Похожие:

Php –функции для работы с массивами iconУрок-лекция. Тема: Двумерные массивы
Цель: познакомить учащихся с понятием двумерных массивов, их особенностями, рассмотреть приемы работы с двумерными массивами; воспитание...

Php –функции для работы с массивами iconТема урока: Числовые функции, ооф, озф
Ввести определение функции, области определения функции, области значений функции

Php –функции для работы с массивами icon«Построение графиков функций и определение их свойств»
Применение: строить схематические графики Анализ: определять зависимость свойств функции и ее графика Синтез: применить знания о...

Php –функции для работы с массивами iconУрок по теме «график кусочно-заданной функции»
График функции это линия наглядно показывающая характер функции. В домашней работе вы имели возможность самостоятельно составить...

Php –функции для работы с массивами iconУрок Цель урока
Изобразите схематически график функции, используя шаблон параболы для функции y= X

Php –функции для работы с массивами iconИздательств
...

Php –функции для работы с массивами iconТесты по выполнению самостоятельной работы студентами тема №1. Экономическая...
Методические рекомендации по работе с комплексом тестовых заданий для самостоятельной работы студентов

Php –функции для работы с массивами iconТема урока: «Определение числовой функции и способы её задания». Дидактическая
Дидактическая цель. Обобщить и систематизировать имеющиеся у учащихся знания о функциях. Дать определения области определения функции...

Php –функции для работы с массивами iconЗадача численного интегрирования состоит в следующем: найти определённый...
Ньютона – Лейбница не всегда возможно, ибо далеко не все функции интегрируются в конечном виде, то есть первообразные таких функций...

Php –функции для работы с массивами iconУрок по теме: «Линейная функция»
Обучающая: Находить значения функции, заданной таблицей или формулой; строить графики линейной функции, понимать, как влияет коэффициент...


Учебный материал


При копировании материала укажите ссылку © 2013
контакты
5-bal.ru