Чтобы скопировать один массив в другой, достаточно одного оператора присваивания:
//$old_array исходный массив
//$new_array новый массив
$new_array = $old_array
Изменение значений элементов в одном массиве никак не отразится на соответствующих элементах другого массива.
Первоначально значения элементов массивов хранятся в том порядке, как они были созданы. Однако этот порядок можно изменить. Упорядочивать (сортировать) элементы массивов можно по значению или по индексу.
Для сортировки элементов массива с числовыми индексами (массивов-списков) по возрастанию значений служит функция sort(массив, режим). Она возвращает true или false соответственно при удачном или ошибочном завершении операции. Функция изменяет индексы элементов в соответствии с новым порядком их расположения. Если массив имеет строковые индексы, то они заменяются числовыми.
Второй необязательный параметр задает режим сортировки:
SORT_REGULAR сравнивать элементы, не изменяя их типы (по умолчанию),
SORT_NUMERIC сравнивать элементы как числа,
SORT_STRING сравнивать элементы как текстовые строки (посимвольно, начиная с первого символа).
$my_array = array
(
“Вася”,
“Аня”,
“Даша”
);
sort($my_array);
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Зададим режим сортировки SORT_NUMERIC:
$my_array = array
(
“Вася”,
“Аня”,
“Даша”
);
sort($my_array, SORT_NUMERIC);
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Зададим режим сортировки SORT_STRING:
$my_array = array
(
“Вася”,
“Аня”,
“Даша”
);
sort($my_array, SORT_STRING);
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Если индексы элементов строковые, то лучше использовать функцию asort(), которая не разрывает связь “индекс-значение”: элементы массива упорядочиваются по возрастанию значений, но их индексы остаются прежними:
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
asort($my_array);
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Фамилия=>Алексеев
Должность=>доцент
Имя=>Иван
Зарплата=>25560
Для сортировки массивов по убыванию служат соответственно функции rsort() и arsort().
Сортировать элементы массивов можно и по значению индексов: ksort() и krsort():
$my_array = array
(
‘Имя’=>“Иван”,
‘Фамилия’=>“Алексеев”,
‘Должность’=>“доцент”,
‘Зарплата’=>25560
);
ksort($my_array);
foreach($my_array as $index=>$value)
{
echo $index, ‘=>’, $value;
echo ‘<BR>’;
}
На экран будет выведено:
Должность=>доцент
Зарплата=>25560
Имя=>Иван
Фамилия=>Алексеев
Эти функции изменяют порядок расположения элементов в массиве, но сохраняют связь “индекс-значение”.
Для присваивания переменным из заданного списка значений элементов массива с числовыми индексами, начинающимися с нуля, используется функция:
list(список переменных) = массив;
Очередной переменной из списка присваивается значение очередного элемента массива, начиная с элемента с индексом 0: