Después de usar array_unique
, se elimina una matriz sin los valores duplicados. Sin embargo, parece que las claves también se eliminan, lo que deja huecos en una matriz con índices numéricos (aunque está bien para una matriz asociativa). Si repito usando un ciclo for, tengo que dar cuenta de los índices que faltan y simplemente copiar las claves a un nuevo conjunto, pero eso parece torpe.En PHP, ¿cómo puedo corregir las teclas faltantes en una matriz?
16
A
Respuesta
39
$foo = array_values($foo);
volverá a número de una matriz para que
1
En lugar de utilizar los bucles Parece que usted debe usar foreach. Aparentemente, no te importan los índices de todos modos, ya que los estás volviendo a numerar.
Este bucle:
for ($i = 0; $i < $loopSize; $i++)
{
process($myArray[$i]);
}
convierte en
foreach($myArray as $key=> $value)
{
process($value);
/** or process($myArray[$key]); */
}
or even more simply
foreach($myArray as $value)
{
process($value);
}
0
En los pocos casos que he intentado usar para en lugar de foreach, pronto se arrepintió.
Siempre se puede evitar, incluso se puede utilizar foreach pero ignorar los valores y usar la tecla, casi olvidando que es un foreach en lugar de hacerlo, pero evitando cualquier espacio en las llaves y teniendo automáticamente sus límites a su cuidado sin funciones de longitud/min/max ni nada.
ex.
foreach($myArray as $key=>$val)
{
myArray[$key] = myFunction(myArray[$key]);
}
Lo he encontrado particularmente útil con matrices paralelas.
$a = getA(); $b = getB();
foreach($a as $key=>val)
{
$sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}
Cuestiones relacionadas
- 1. PHP cambiar el nombre de las teclas de una matriz
- 2. Normalizar el caso de las teclas de matriz en PHP
- 3. Encontrar valores faltantes en una matriz numpy
- 4. Bigote (PHP) Salida de las teclas de matriz asociativa
- 5. PHP cambiar el nombre de las teclas de matriz en matriz multidimensional
- 6. Restablecer las teclas de matriz en matriz multidimensional
- 7. ¿Cómo puedo detectar (y corregir) la inclinación en las imágenes?
- 8. activar/desactivar todas las casillas de verificación con Javascript en una matriz PHP con teclas
- 9. Twig olvida las teclas de matriz
- 10. Cómo eliminar el prefijo en las teclas de matriz
- 11. ¿Cómo cambiar el nombre de las teclas de matriz en PHP?
- 12. Cambiar las teclas del Array a numérico en PHP
- 13. PHP explotar y establecer en cadena vacía las piezas faltantes
- 14. ¿Cómo puedo determinar si una matriz está vacía en PHP?
- 15. PHP ¿Cómo puedo anexar datos en una matriz serializada
- 16. ¿Cómo elimino una clave específica en una matriz usando php?
- 17. PHP array_merge con las teclas numéricas
- 18. teclas matriz dinámica
- 19. PHP Array ¿Codificación de teclas?
- 20. matriz unsetting teclas
- 21. ¿Cómo puedo hacer un hash Perl desde una matriz con las teclas y otra matriz con los valores?
- 22. Cómo lanzar una excepción matriz en PHP
- 23. Después de array_filter(), ¿cómo puedo restablecer las teclas para ir en orden numérico comenzando en 0
- 24. cómo cambiar las teclas de matriz de mayúsculas a minúsculas?
- 25. Cómo ordenar una matriz fecha en PHP
- 26. ¿Puedo usar array_push en una matriz SESSION en php?
- 27. Dividir una matriz en las variables en php
- 28. PHP - Convertir matriz multidimensional en matriz 2D con teclas de notación de puntos
- 29. php teclas de elegancia desarmando
- 30. cómo convertir una matriz multidimensional a objeto en php?
Wow. Leí la lista de funciones de matriz y la olvidé por completo. Gracias. –