Переиндексация массива может быть выполнена вместе с некоторой встроенной функцией. Вот эти функции:
- функция array_combine() :Функция array_combine() — это встроенная в PHP функция, которая используется для объединения двух массивов. и создайте новый массив, используя один массив для ключей и другой массив для значений. То есть все элементы одного массива будут ключами нового массива, а все элементы второго массива будут значениями этого нового массива.
- Функция range(): функция range() — это встроенная в PHP функция, которая используется для создания массива элементов любого типа, таких как целые числа, алфавиты в заданном диапазоне (от младшего к старшему), т.е. первый элемент списка считается младшим, а последний — старшим.
- Функция count() : функция count() используется для подсчета текущих элементов в массиве. Функция может возвращать 0 для переменной, для которой задан пустой массив. Кроме того, для переменной, которая не установлена, функция возвращает 0.
- array_values ‚Äã‚Äã() Функция :Эта функция используется для получить массив значений из другого массива, который может содержать пары ключ-значение или просто значения. Функция создает другой массив, в котором хранятся все значения ‚Äã‚Äã, и по умолчанию присваивает значениям числовые ключи.
Мы будем использовать array_values ‚Äã‚Äã(), чтобы получить все значения ‚Äã‚Äãof array и range() для создания элементов массива, которые мы хотим использовать в качестве новых ключей или нового индекса массива (переиндексация). Затем функция array_combine() объединит массив в виде ключей и значений.
Пример 1:
// Объявить ассоциативный массив
$arr
=
array
(
0 = >
`Тони`
,
1 = >
`Старк`
,
2 = >
`Железо`
,
3 = >
`Мужчина`
) ;
echo
" Массив перед переиндексацией"
;
< br>// Использование цикла foreach для вывода элементов массива
foreach
(
$arr
as
$key
= >
$value
) {
echo
"Index:"
.
$key
.
"Value:"
.
$value
.
""
;
}
// Установить порядковый номер из трех e
$New_start_index
= 3;
$arr
=
array_combine
(диапазон (
$New_start_index
,
количество
(
$arr
) + (
$New_start_index
- 1)),
array_values ​​ (
$arr
));
echo
" Массив после переиндексации "
;
// Использование цикла foreach для вывода элементов массива
foreach
(
$arr
as
$key
= >
$value
) {
echo
"Индекс:"
.
$key
.
"Value:"
.
$value
.
""
;
}
?>
Выход: Массив до переиндексации Индекс: 0 Значение: Индекс Тони: 1 Значение: Индекс Старка: 2 Значение: Индекс железа: 3 Значение: Man Массив после переиндексации Индекс: 3 Значение: Индекс Тони: 4 Значение: Индекс Старка : 5 Значение: Iron Индекс: 6 Значение: Man
Пример 2.Добавьте некоторые данные в начало массива, а затем извлеките массив из индекса. <код><код>
// Объявить ассоциативный массив
$arr
=
array
(
0 = >
`Тони`
,
1 = >
`Старк`
,
2 = >
`Железо`
,
3 = >
`Мужчина`
);
echo
" Массив перед переиндексацией "
;
// Использование цикла foreach для вывода элементов массива
foreach
(
$arr
as
$key
= >
$value
) {
echo
"Index:"
.
$key
.
"Value:"
.
$value
.
""
;
}
// Установить порядковый номер из трех$New_start_index
= 3;
$raw_data
= диапазон (0,
$New_start_index
- 1);
// Добавляем данные в начало массива
foreach
(
$raw_data
as
$key
= >
$value
) {
array_unshift
(
$arr
,
$value );
}
$arr
=
array_values ​​
(
$arr
);
// Удалим ненужный индекс, чтобы начать с 10 $arr
=
array_slice
(
$arr
,
$New_start_index
,
count
(
$arr
), true);
echo
"Массив после переиндексации"
;
// Использование цикла foreach для печати массива
foreach
(
$arr
as
$key
= >
$value ) {
echo
"Индекс:"
.
$key
.
"Value:"
.
$value
.
""
;
}
?>
Выход: Массив до переиндексации Индекс: 0 Значение: Индекс Тони: 1 Значение: Индекс Старка: 2 Значение: Индекс железа: 3 Значение: Man Массив после повторной индексации Индекс: 3 Значение: Индекс Тони: 4 Значение: Индекс Старка: 5 Значение :Iron Индекс: 6 Значение: Man
В этом примере сначала добавляем какие-то данные в массив, а для этого делаем это снова циклом, а потом удаляем добавленные нами данные, так что это тоже не лучший вариант выбор для переиндексации массива... Этот метод не подходит для переиндексации буквенных ключей.Пример 3:В этом примере выполняется переиндексация алфавитного массива ` p '. Для переиндексации алфавитов используются две дополнительные функции:- Функция ord() :Функция ord() — это встроенная функция PHP, которая возвращает Значение ASCII первого символа строки.
- CHR() Функция:Функция CHR() — это встроенная функция в PHP, которая используется для преобразования значения ASCII в символ.
// Объявить ассоциативный массив
$arr
=
array
(
`a`
= >
`Индия`
,
`b`
= >
`Америка`
,
`c`
= >
`Россия`
,
`d`
= >
`Китай`
);
echo
" Массив перед переиндексацией"
;
// Использование цикла foreach для вывода элементов массива
foreach
(
$arr
as
$key
= >
$value
) {
echo
"Индекс:"
.
$key
.
"Value:"
.
$value
.
""
;
}
// Установить индекс из ` p `
$New_start_index
=
` p`
;
// Функция ord() используется для получения значения ascii
// chr() функция для преобразования числа в ASCII
$arr
=
array_combine
(range (
$ New_start_index
,
chr (
count
(
$arr
) + (ord (
$New_start_index
) - 1))),
array_values ​​
(
$arr
));
echo
" Массив после переиндексации "
;
// Использование цикла foreach для печати массива
foreach
(
$arr
as
$key
= >
$value ) {
echo
" Индекс:"
.
$key
.
"Значение:"
.
$value
.
""
;
}
?>
Выход:Массив перед переиндексацией Индекс: a Значение: Индия Индекс: b Значение: Америка Индекс: c Значение: Индекс России: d Значение: Китай Массив после переиндексации Индекс: p Значение: Индия Индекс: q Значение: Америка Индекс: r Значение: Россия Индекс: s Значение: Китай