La reindexación de una matriz se puede hacer con alguna función integrada. Estas funciones son:
- Función array_combine() :Función array_combine() - es una función integrada en PHP que se usa para combinar dos matrices y cree una nueva matriz usando una matriz para claves y otra matriz para valores. Es decir, todos los elementos de un arreglo serán las claves del nuevo arreglo, y todos los elementos del segundo arreglo serán los valores ‚Äã‚Äão de este nuevo arreglo.
- Función range(): función range() - es una función integrada en PHP que se usa para crear una matriz de elementos de cualquier tipo, como números enteros, alfabetos en un rango dado (de menor a mayor), es decir, el primer elemento de la lista se considera bajo y el último se considera alto.
- función count() : función count() se usa para contar los elementos actuales en una matriz. La función puede devolver 0 para una variable que se ha establecido en una matriz vacía. Además, para una variable que no está configurada, la función devuelve 0.
- array_values ‚Äã‚Äã() Función :Esta función se usa para obtener una matriz de valores ‚Äã‚Äãde otra matriz, que puede contener pares clave-valor o solo valores. La función crea otra matriz que almacena todos los valores ‚Äã‚Äãy por defecto asigna claves numéricas a los valores.
Usaremos array_values ‚Äã‚Äã() para obtener todos los valores ‚Äã‚Äãoof array y range() para crear una matriz de elementos que queremos usar como nuevas claves o nuevo índice de matriz (reindexación). Luego, la función array_combine() combinará la matriz como claves y valores.
Ejemplo 1:
// Declarar una matriz asociativa
$arr
=
array< /código> ( 0 = > `Tony` , < /código> 1 = > `Stark` , 2 = > `Hierro`
,
3 = >
`Hombre`
) ;
echo
" Matriz antes de volver a indexar "
;
< br>// Uso de un bucle foreach para imprimir elementos de matriz
foreach
(
$arr
as $clave = > $valor ) { echo< /código> "Índice:" . $clave . "Valor:" . $valor . "" ; }
// Establecer un número secuencial de tres e
$New_start_index
= 3;
$arr
=
array_combine
(range (
$New_start_index
,
count
(
$arr
) + (
$New_start_index
- 1)),
array_values ​​ (
$arr
));
echo
" Matriz después de volver a indexar "
;
// Uso de un bucle foreach para imprimir elementos de matriz foreach ( $arr as $clave = >< /código> $valor ) { echo "Índice:" .
$clave
.
"Valor:"
.
$value
. "" ; }
?> Salir: Arreglo antes de re-indexar Índice: 0 Valor: Tony Índice: 1 Valor: Stark Índice: 2 Valor: Hierro Índice: 3 Valor: Man Array después de re-indexar Índice: 3 Valor: Tony Índice: 4 Valor: Stark Índice : 5 Valor: Hierro Índice: 6 Valor: Hombre
Ejemplo 2.Agregue algunos datos al comienzo de la matriz y luego extraiga la matriz del índice.
// Declarar una matriz asociativa
$arr
=
array< /código> ( 0 = > `Tony` , < /código> 1 = > `Stark` , 2 = > `Hierro`
,
3 = >
`Hombre`
); echo " Matriz antes de volver a indexar " ;
// Uso de un bucle foreach para imprimir elementos de matriz
foreach
(
$arr
as
< código>$clave
= > $valor ) { echo "Índice:" . $clave . "Valor:" .
$valor
.
""
;
}
// Establecer un número secuencial de tres
$New_start_index
= 3;
$raw_data
= rango (0,
$New_start_index
- 1);
// Agregar datos al comienzo de la matriz
foreach
(
$datos_sin procesar
como
$clave
= >
$valor
) {
array_unshift
(
$arr
,
$valor );
}
$arr
=
array_values ​​
(
$arr
);
// Elimina el índice innecesario para que empecemos en 10 $arr
=
array_slice
( $arr , $Nuevo_índice_de_inicio , recuento ( $arr ), verdadero); echo "Array después de volver a indexar"
;
// Usar un ciclo foreach para imprimir una matriz
foreach
(
$arr
as
$key
= >
$value ) {
echo
"Índice:"
.
$key
.
"Valor:"
.
$value
.
""
; }
?> Salir:Arreglo antes de volver a indexar Índice: 0 Valor: Tony Índice: 1 Valor: Stark Índice: 2 Valor: Hierro Índice: 3 Valor: Man Array después de volver a indexar Índice: 3 Valor: Tony Índice: 4 Valor: Stark Índice: 5 Valor : Hierro Índice: 6 Valor: Hombre
En este ejemplo, primero agregue algunos datos a la matriz, y para eso lo hacemos nuevamente con un bucle, y luego elimine los datos que agregamos, por lo que tampoco es lo mejor opción para volver a indexar la matriz... Este método no es adecuado para volver a indexar claves alfabéticas.Ejemplo 3:Este ejemplo vuelve a indexar una matriz alfabética ` p '. Se utilizan dos funciones adicionales para reindexar alfabetos:- Función ord() :La función ord() - es una función PHP integrada que devuelve el Valor ASCII del primer carácter de una cadena.
- Función CHR() :La función CHR() es una función integrada en PHP que se utiliza para convertir un valor ASCII en un carácter.
// Declarar una matriz asociativa
$arr
=
array< /código> ( `a` = > `India` ,
`b`
= >
`America`
,
< código> `c` = > `Rusia` , `d`
= >
`China`
);
echo
" Matriz antes de volver a indexar "
;
// Uso de un bucle foreach para imprimir elementos de matriz foreach ( $arr as $clave = >< /código> $valor ) { echo "Índice:" .
$clave
.
"Valor:"
.
$value
. "" ; }
// Establecer índice desde ` p `
$New_start_index
=
` p`
;
// La función ord() se usa para obtener el valor ASCII
// chr() función para convertir un número a ASCII
$arr
=
array_combine
(rango (
$ New_start_index
,
chr (
count
(
$arr
) + (ord (
$New_start_index
) - 1))),
< código>array_values ‚Äã‚Äã
(
$arr
));
echo
" Matriz después de volver a indexar "
;
// Uso de un bucle foreach para imprimir una matriz
foreach
(
$arr
as
$key
= > $valor ) { echo " Índice:"
.
$clave
.
"Valor:"
.
$valor . "" ; }
?>
Salir:Arreglo antes de volver a indexar Índice: a Valor: India Índice: b Valor: América Índice: c Valor: Rusia Índice: d Valor: China Matriz después de volver a indexar Índice: p Valor: India Índice: q Valor: América Índice: r Valor: Rusia Índice: s Valor: China