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

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)

 










Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: