Soy nuevo en PHP, y no puedo entender esta pregunta básica. ¿PHP tiene algún tipo de conjunto o objeto de lista? Algo así como una matriz, pero con la capacidad de agregar o quitar dinámicamente cualquier cantidad de objetos de ella.¿PHP tiene una estructura de datos establecida?
Respuesta
Sí, podría usar el objeto array y el array functions.
Básicamente, puede hacer crecer dinámicamente una matriz utilizando la función array_push, o la notación $arrayName[] = ...
(donde arrayName es el nombre de su matriz).
Las matrices de PHP son como una mezcla de matrices ordenadas indexadas por un número y una tabla de búsqueda hash. Puede buscar cualquier elemento mediante un índice de cadena, pero los elementos también tienen un orden definido.
Simplemente use una matriz de php, no existe una matriz de 'tamaño fijo' en PHP, por lo que debería estar bien con ellas.
Sí, hay una matriz de tamaño fijo. Se llama 'SplFixedArray'. Por favor, eche un vistazo aquí: http://php.net/manual/en/splfixedarray.construct.php – Julian
Como mencionó un "objeto Set" en el título de la pregunta (es decir, si necesita que los objetos no se repitan dentro del conjunto), eche un vistazo a SplObjectStorage (php 5.3+).
Puede usar Set desde Nspl. Es compatible con las operaciones básicas de ajuste que tienen otros conjuntos, matrices y objetos transitables como argumentos:
$set = set(1, 2);
$set->add('hello');
$set[] = 'world';
$set->delete('hello');
$array = [1, 2, 3];
$intersection = $set->intersection($array);
$anotherSet = Set::fromArray([1, 2, 3]);
$difference = $set->difference($anotherSet);
$iterator = new \ArrayIterator([1, 2, 3]);
$union = $set->union($iterator);
$isSubset = $set->isSubset([1, 2, 'hello', 'world']);
$isSuperset = $set->isSuperset([1, 2]);
Si usted está buscando una estructura de datos Set
sin elementos repetidos, parece que a partir de PHP 7 del SPL añade soporte para una Set estructura de datos.
- 1. ¿Por qué .Net no tiene una estructura de datos establecida?
- 2. ¿Java tiene una estructura de datos "LinkedConcurrentHashMap"?
- 3. ¿Tiene LaTeX una estructura de datos de matriz?
- 4. ¿jQuery tiene una estructura de datos mutable de tipo hashtable?
- 5. ¿Tiene sentido asignar una estructura de datos de gráficos a una base de datos relacional?
- 6. ¿Estructura el tipo de datos en php?
- 7. Relación inversa de datos centrales no establecida
- 8. "una estructura tiene herencia pública por defecto"
- 9. ¿Hay una manera fácil de saber si una clase/estructura no tiene miembros de datos?
- 10. estructura de datos para árbol transversal en PHP?
- 11. Pregunta de estructura de PHP
- 12. C - Cómo implementar Establecer estructura de datos?
- 13. ¿Cómo agregaría una columna que solo tiene una opción de valores establecida?
- 14. Una estructura de datos 2D óptima
- 15. ¿ColdFusion tiene una sintaxis corta para crear una estructura?
- 16. ¿Cómo se analiza una estructura de datos en serie de PHP en Java?
- 17. ¿Estructura de datos para almacenar una gran cantidad de datos?
- 18. ¿Una implementación establecida en LaTeX?
- 19. Creando un modelo que tiene una estructura de árbol
- 20. ¿Cómo mostrar la estructura de datos planos en una estructura de datos jerárquica (Java)?
- 21. Lectura de una estructura dentro de una estructura mediante la función de desempaquetado de PHP
- 22. ¿Qué estructura de datos usar?
- 23. Diseñando visualmente una estructura de base de datos
- 24. ¿PHP tiene un tipo de datos más grande que int?
- 25. ¿Cómo puedo crear una firma repetible de una estructura de datos?
- 26. Estructura de la base de datos para estructura de datos de árbol
- 27. ¿Cómo muestro qué campos tiene una estructura en gdb?
- 28. Estructura de datos para datos espaciales
- 29. java.util.Stack estructura de datos adecuada?
- 30. Clase vs estructura de datos
Una matriz de PHP proporciona una 'Lista' y' HashMap', pero no un 'Conjunto'. Puede emular un 'Set' a través de la interfaz' HashMap' configurando sus elementos como una clave de matriz. – dtech
Pero luego puede tener conjuntos solo de tipos escalares. Si estoy en lo correcto, esta es una solución pobre. – ribamar