Функции Язык программирования PHP

array_unique

(PHP 4 >= 4.0.1)

array_unique - удаляет из массива дублирующиеся значения.

Описание

array array_unique (array array)

array_unique() принимает на входе массив array и возвращает новый массив без дублирующих значений.

Заметьте, что ключи сохраняются. array_unique() сначала сортирует значения, рассматриваемые как строки, затем сохранит первый ключ, вычисленный для каждого значения, и проигнорирует все последующие ключи. Это не означает, что ключ первого соответствующего значения неотсортированного массива array будет сохранён.

Примечание: Два элемента считаются равными, если, и только если,
(string) $elem1 === (string) $elem2. Иначе говоря: если строковые представления одинаковы.

Будет использоваться первый элемент.

Предупреждение!

Это отсутствовало в PHP 4.0.4!

Пример 1. array_unique()
$input = array ("a" => "green", "red", "b" => "green", "blue", 
"red"); $result = array_unique ($input); print_r($result);

На выходе будет:
Array 
( [b] => green [1] => blue [2] => red )

Пример 2. array_unique() и типы
$input 
= array (4,"4","3",4,3,"3"); $result = array_unique($input); var_dump($result);

Вывод этой программы (в PHP 4.0.6):
array(2) 
{ [3]=> int(4) [4]=> int(3) }

Apache-модуль

Когда PHP используется как Apache-модуль, он наследует пользовательские права доступа Apache'а (обычно это пользователь "nobody"). Это оказывает влияние на обеспечение безопасности и авторизации. Например, если вы используете PHP для доступа к базе данных, и если эта БД не имеет встроенного контроля доступа, вы должны будете обеспечить доступ к этой БД для пользователя "nobody". В этом случае зловредный скрипт может получить доступ к БД и изменить её, даже не имея имени и пароля. Тогда хакер сможет получить доступ к web-странице администратора БД и уничтожить все ваши БД. Защититься от этого можно с помощью авторизации Apache, или разработав вашу собственную модель доступа с использованием LDAP, .htaccess-файлы, etc. и включив этот код как часть ваших PHP-скриптов.

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

Обычной ошибкой бывает в этом случае предоставление доступа apache root или расширение возможностей Аpache'а каким-нибудь другим способом.

Увеличение пользовательского доступа Apache'а к корневой директории/root очень опасно и может завалить всю систему, поэтому sudo, chroot или другой подобный запуск как root не должен выполняться теми, кто не считает себя профессионалами в вопросах безопасности.

Есть несколько простых решений. Используя open_basedir, вы можете управлять ограничением количества директорий, которые могут использоваться PHP. Вы можете также установить области apache-only, ограничив web-активность не-пользовательскими или не-системными файлами.