KnigaRead.com/

White cat - Справочник по PHP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн white cat, "Справочник по PHP" бесплатно, без регистрации.
Перейти на страницу:

Пример использования array_diff_uassoc():

<?php

$a = array_fill(5, 6, 'banana');

print_r($a);

?>

Пример выведет следующее:

Array( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana)

Функция поддерживается PHP 4 >= 4.2.0, PHP 5


array_filter


Функция применяет фильтр к массиву, используя пользовательскую функцию.

Синтаксис:

array array_filter(array input [, callback callback])

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

В случае, если исходный массив input является ассоциативным массивом, в результирующем массиве индексы сохраняются.

Пример использования функции array_filter():

<?php

function odd($var) {

return ($var % 2 == 1);

}


function even($var) {

return ($var % 2 == 0);

}


$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);

$array2 = array (6, 7, 8, 9, 10, 11, 12);


echo "Нечетные :n";

print_r(array_filter($array1, "odd"));

echo "Четные :n";

print_r(array_filter($array2, "even"));

?>

Пример выведет следующее:

Нечетные :Array( [a] => 1 [c] => 3 [e] => 5)Четные :Array( [0] => 6 [2] => 8 [4] => 10 [6] => 12)

Стоит отметить, что вместо имени фильтрующей функции можно указать массив, который содержит ссылку на объект и имя метода.

Также стоит отметить, что при обработке массива фукцией array_filter() его нельзя изменять: добавлять, удалять элементы или обнулять массив, т.к. это может привести к некоррекстной работе функции.

Функция поддерживается PHP 4 >= 4.0.6, PHP 5


array_map


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

Синтаксис:

array array_map(mixed callback, array arr1 [, array ...])

Функция array_map() возвращает массив, который содержит элементы всех указанных массивов после обработки пользовательской функцией callback.

Количество параметров, передаваемых пользовательской функции, должно совпадать с количеством массивов, переданных функции array_map().

Пример испольльзования функции array_map(): Обработка одного массива

<?php

function cube($n) {

return $n*$n*$n;

}


$a = array(1, 2, 3, 4, 5);

$b = array_map("cube", $a);

print_r($b);

?>

Приведенный пример выведет следующее:

Array( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125)

Пример испольльзования функции array_map(): Обработка нескольких массивов

<?php

function show_Spanish($n, $m) {

return "Число $n по-испански - $m";

}


function map_Spanish($n, $m) {

return array ($n => $m);

}


$a = array(1, 2, 3, 4, 5);

$b = array("uno", "dos", "tres", "cuatro", "cinco");


$c = array_map("show_Spanish", $a, $b);

print_r($c);


$d = array_map("map_Spanish", $a , $b);

print_r($d);

?>

Приведенный пример выведет следующее:

// printout of $cArray( [0] => Число 1 по-испански - uno [1] => Число 2 по-испански - dos [2] => Число 3 по-испански - tres [3] => Число 4 по-испански - cuatro [4] => Число 5 по-испански - cinco)// printout of $dArray( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ))

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

Следует отметить, что если вместо имени обрабатывающей функции задать null, то будет создан массив массивов.

Пример испольльзования функции array_map(): Создание массива массивов

<?php

$a = array(1, 2, 3, 4, 5);

$b = array("one", "two", "three", "four", "five");

$c = array("uno", "dos", "tres", "cuatro", "cinco");


$d = array_map(null, $a, $b, $c);

print_r($d);

?>

Приведенный пример выведет следующее:

Array( [0] => Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ))

Функция поддерживается PHP 4 >= 4.0.6, PHP 5

Переменные и массивы


list


Заносит элементы массива в переменные.

Синтаксис:

void list ( mixed ...)

Наподобие array(), функция list() не совсем функция, а языковая конструкция. Она используется для формирования списка переменных.

Замечание: list() работает только с цифровыми индексами массива и принимает ключи элементов начиная с 0.

Пример использования функции list():

<?php

$info = array("coffee", "brown", "caffeine");


// Выведем все переменные

list($drink, $color, $power) = $info;

echo "$drink is $color and $power makes it special.n";


// Выведем первый и последний

list($drink, , $power) = $info;

echo "$drink has $power.n";


// Выведем только третий

list( , , $power) = $info;

echo "I need $power!n";

?>

Пример использования функции list():

<table>

<tr>

<th>Employee name</th>

<th>Salary</th>

</tr>


<?php


$result = mysql_query("SELECT id, name, salary FROM employees", $conn);

while (list($id, $name, $salary) = mysql_fetch_row($result)) {

echo " <tr>n" .

" <td><a href="info.php?id=$id">$name</a></td>n" .

" <td>$salary</td>n" .

" </tr>n";

}

?&gt;


</table>


Пример использования функции list(): Индексы

<?php

$info = array("coffee", "brown", "caffeine");


list($a[0], $a[1], $a[2]) = $info;


var_dump($a);

?>

array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee"}

Функция поддерживается PHP 3, PHP 4, PHP 5


compact


Упаковывает в массив переменные из текущего контекста.

Синтаксис:

array compact(mixed varname1 [, mixed $varname2, ...])

Функция compact() упаковывает в массив переменные из текущего контекста (глобального или контекста функции), заданные своими именами в varname1, $varname2 и т.д. При этом в массиве образуются пары с ключами, равными содержимому varnameN, и значениями соответствующих переменных.

Число аргументов может быть неопределенное.

Если в аргументе указано имя несуществующей переменной, он пропускается. Действие этой функции противоположно функции extract().

Пример использования функции compact():

<?php

$city = "San Francisco";

$state = "CA";

$event = "SIGGRAPH"";


$location_vars = array("city", "state");


$result = compact("event", "nothing_here", $location_vars);

?>

В результате выполнения кода переменная $result имеет значение:

Array( [event] => SIGGRAPH [city] => San Francisco [state] => CA)

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

Пример использования функции compact():

<?php

$a="Test";

$b="Text";

$c="CCC";

$d="DDD";

$List=array("b",array("c","d"));

$A=compact("a",$List);

?>

Теперь:

// теперь $A===array("a"=>"Test", "b"=>"Text",

"c"=>"CCC", "d"=>"DDD")


Функция поддерживается PHP 4, PHP 5


extract


Импорт элементов массива в переменные.

Синтаксис:

int extract (array var_array [, int extract_type [, string prefix]])

Функция extract() используется для импортирования значений массива в строку. Эта функция берет ассоциативный массив var_array, использую ключ элемента как имя переменной, а значение элемента как значение полученной переменной. Для создания переменных из пары ключ = значение можно также использовать необязательные параметры extract_type и prefix.

Замечание: начиная с PHP версии 4.0.5 эта функция возвращала количество извлеченных переменных.

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*