array array_intersect_assoc(array data, array comparison, .)
Функция array_intersect_assoc возвращает массив с элементами, которые встречаются во всех массивах, аналогично функции array_intersect. Кроме идентичности элементов, должны совпадать индексы. Эта функция является дополнением функции array_diff_assoc.
boolean array_key_exists(key, array data)
Функция array_key_exists проверяет существование индекса в заданном массиве.
array array_keys(array data, string value)
Функция array_keys (листинг 11.28) возвращает массив индексов, используемых в массиве data. При указании необязательного аргумента value возвращается только подмножество индексов, указывающих на элемент с заданным значением.
Листинг 11.28. Функция arraykeys
<?php
//создать случайные данные для тестирования (0 или 1)
srand(time());
for($i=0; $i<10; $i++)
{
$data[] = rand(0,1);
}
// распечатать индексы для 1 foreach(array_keys($data, 1) as $key)
{
print("$key<br>n");
}
?>
array array_map(string function, array data, .)
Функция array_map (листинг 11.29) применяется для использования функции обратного вызова к каждому элементу аргумента data. PHP вызывает заданную функцию с каждым элементом массива. Этой функции можно задавать любое количество дополнительных массивов, и PHP будет использовать их элементы для функции обратного вызова. При этом предполагается, что функция обратного вызова может принимать столько аргументов, сколько будет передано массивов (рис. 11.7).
Листинг 11.29. Функция array_map
<?php
$a = array(1, 2, 3); $b = array(4, 5, 6); $c = array(7, 8); function add($n1, $n2)
{
return($n1 + $n2);
}
//каждый элемент
print_r(array_map('add', $a, $b)); // составить распределение массивов print_r(array_map(NULL, $a, $b, $c));
?>
Эту функцию можно задавать с функцией обратного вызова NULL, и в таком случае PHP создаст массив массивов заданного массива. Первый элемент будет массивом первых элементов каждого массива и т.д.
Если хотя бы один из массивов будет короче другого, PHP дополнит "лишние" элементы значениями NULL.
array array_merge(array data, array data, .)
Функция array_merge (листинг 11.30) принимает один или более массивов и возвращает единый массив, содержащий все элементы. Элементы индексируются целыми числами, и в большей части перенумеровываются. Элементы, индексированные строками, сохраняют свои индексные значения и добавляются в соответствии с порядком в исходном массиве. При этом они могут замещать предыдущие значения. Если нет уверенности в индексах объединяемых массивов, для того чтобы убедиться в том, что все индексы представлены целыми числами, можно воспользоваться функцией array_values.
Листинг 11.30. Функция array_merge
<?php
// задать массив с названиями цветов $colors = array("red", "blue", "green"); $more_colors = array("yellow", "purple", "orange"); //объединить массивы
print_r(array_merge($colors, $more_colors));
?>
array array_merge_recursive(array data, array data, .)
Функция array_merge_recursive (листинг 11.31) действует аналогично функции array_merge, за исключением того, что она объединяет элементы со строковыми индексами в подмассивы (рис. 11.8).
Листинг 11.31. Функция array_merge_recursive
<?php
$robot1 = array(
,name,=>,Avenger', 'weapon'=>array(
'Machine Gun', 'Laser'), 'motivation'=>'tires'
);
$robot2 = array(
'name'=>'Assassin', 'weapon'=>'Machine Gun', 'motivation'=>array( 'tires', 'wings'
)
);
print_r(array_merge_recursive($robot1, $robot2));
?>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Данные. Часть Шестая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Данные. Часть Пятая. | PHP. Данные. Часть Седьмая. |