Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_МАССИВЫ.doc
Скачиваний:
9
Добавлен:
11.07.2019
Размер:
86.53 Кб
Скачать

Комплексная замена в строке

strtr Комплексная замена в строке. Синтаксис : string strtr(string str, string from, string to) string strtr(string str, array from) В первом случае функция strtr() возвращает строку str, у которой каждый символ, присутствующий в строку from, заменяется на корреспондирующий из строки to. В случае, если строки from и to различной длины, то лишние конечные символы длинной строки игнорируются. Во втором случае функция strtr() возвращает строку, в которой фрагменты строки str заменяются на соответствующие индексам значения элементов массива from. При этом функция пытается заменить сначало наибольшие фрагменты исходной строки и не выполняет замену в уже модифицированных частях строки. Таким бразом, теперь мы можем выполнить несколько замен сразу:

$Subs = array(

"<name>" => "Larry",

"<time>" => date("d.m.Y")

);

$st="Привет, <name>! Сейчас <time";

echo strtr($st,$Subs);

А вот как можно "отменить" действие функции HtmlSpecialChars():

$Trans=array_flip(get_html_translation_table());

$st=strtr($st, $Trans);

В результате мы из строки, в которой все спецсимволы заменены на их HTML-эквиваленты, получим исходную строку.

Работа с несколькими массивами

array_diff Определение исключительного пересечения массивов. Синтаксис : array array_diff(array arr1, array arr2 [, array ...]) Данная функция возвращает массив, который содержит значения, имеющиеся только в массиве arr1 ( и не имеющиеся в любых других). При этом индексы не сохраняются.

$arr1 = array("a" => "green", "red", "blue");

$arr2 = array("b" => "green", "yellow", "red");

$result = array_diff($arr1, $arr2);

// $result = array("blue")

array_intersect Определение включительного пересечения массивов. Синтаксис : array array_intersect(array arr1, array arr2 [, array ...]) Функция array_intersect() возвращает массив, который содержит значения массива arr1, имеющиеся во всех остальных массивах. При этом индексы не сохраняются.

$arr1 = array("a" => "green", "red", "blue");

$arr2 = array("b" => "green", "yellow", "red");

$result = array_intersect($arr1, $arr2);

// $result = array("a" => "green", "red")

array_merge Слияние массивов. Синтаксис : array array_merge(array arr1, array arr2 [, array ...]) Функция array_merge() призвана устранить все недостатки, присущие оператору + для слияния массивов. А именно, она сливает массивы, перечисленные в ее аргументах, в оди большой массив и возвращает результат. Если в массивах встречаются одинаковые ключи, в результат помещается пара ключ=>значение из того массива, который расположен правее в списке аргументов. Однако это не затрагивает числовые ключи: элементы с такими ключами помещаются в конец результирующего массива в любом случае.

$L1=array(10,20,30);

$L2=array(100,200,300);

$L=array_merge($L1, $L2);

// теперь $L===array(10,20,30,100,200,300);

array_merge_recursive Объединение сложных массивов. Синтаксис : array array_merge_recursive(array arr1, array arr2 [, array ...]) Функция array_merge_recursive() сильно напоминает функцию array_merge() с тем дополнением, что она может работать с многомерными и древовидными массивами, а элементы с одинаковыми строковыми индексами превращаются в подмассивы. Для числовых индексов поведение функции аналогично array_merge().

$arr1 = array("color" => array("favorite" =>"red"), 5);

$arr2 = array(10, "color" => array("favorite" =>"green"), "blue");

$result = array_merge_recursive($arr1, $arr2);

// $result = array("color" => array (

// "favorite" => array("red", "green"),

// "blue"), 5, 10)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]