vacio una suma recorrer multidimensional matriz matrices manejo imprimir hacer dibujar como array 5x5 3x3 php arrays initialization

una - recorrer un array multidimensional php



La mejor manera de inicializar la matriz(vacĂ­a) en PHP (8)

En algunos otros idiomas (por ejemplo, AS3), se ha observado que la inicialización de una nueva matriz es más rápida si se realiza de esta manera var foo = [] lugar de var foo = new Array() por razones de creación e instanciación de objetos. Me pregunto si hay equivalencias en PHP?

class Foo { private $arr = array(); // is there another / better way? }


Antes de PHP 5.4:

$myArray = array();

PHP 5.4 y superior

$myArray = [];


En PHP una matriz es una matriz; no hay una consideración primitiva frente a un objeto, por lo que no se puede tener una optimización comparable.


En las implementaciones de ECMAScript (por ejemplo, ActionScript o JavaScript), Array() es una función constructora y [] es parte de la gramática literal de la matriz. Ambos se optimizan y se ejecutan de maneras completamente diferentes, y la gramática literal no se ve obstaculizada por la sobrecarga de llamar a una función.

PHP, por otro lado, tiene construcciones de lenguaje que pueden parecer funciones pero no se tratan como tales. Incluso con PHP 5.4, que admite [] como alternativa, no hay diferencia en la sobrecarga porque, en lo que respecta al compilador / analizador, son completamente sinónimos.

// Before 5.4, you could only write $array = array( "foo" => "bar", "bar" => "foo", ); // As of PHP 5.4, the following is synonymous with the above $array = [ "foo" => "bar", "bar" => "foo", ];

Si necesita admitir versiones anteriores de PHP, use la sintaxis anterior. También hay un argumento para la legibilidad pero, siendo un desarrollador de JS desde hace mucho tiempo, este último me parece bastante natural. De hecho, cometí el error de intentar inicializar matrices usando [] cuando estaba aprendiendo PHP por primera vez.

Este change en el idioma se propuso y rechazó originalmente debido a un voto mayoritario en contra de los desarrolladores principales por el siguiente motivo:

Este parche no será aceptado porque la mayoría de los desarrolladores votaron en contra. Aunque si se toma una media acumulada entre los desarrolladores centrales y los votos de los usuarios, parece mostrarse lo contrario, sería irresponsable enviar un parche que no sea compatible o se mantenga a largo plazo.

Sin embargo, parece que hubo un cambio en el corazón que llevó a 5.4, quizás influenciado por las implementaciones de soporte para bases de datos populares como MongoDB (que usan la sintaxis ECMAScript).


Inicializando una matriz simple:

<?php $array1=array(10,20,30,40,50); ?>

Inicializando matriz dentro de matriz:

<?php $array2=array(6,"santosh","rahul",array("x","y","z")); ?>

Fuente: Sorce por el código.


Lo que estás haciendo es 100% correcto.

En términos de nombres agradables, a menudo se hace que las propiedades privadas / protegidas estén precedidas de un guión bajo para que sea obvio que no son públicas. Por ejemplo, private $_arr = array() o public $arr = array()


Prueba esto:

$arr = (array) null; var_dump($arr); // will print // array(0) { }


No hay otra manera , así que esta es la mejor.

Edición: esta respuesta no es válida desde PHP 5.4 y superior.


$myArray = [];

Crea una matriz vacía.

Puede insertar valores en la matriz más tarde, así:

$myArray[] = "tree"; $myArray[] = "house"; $myArray[] = "dog";

En este punto, $ myArray contiene "árbol", "casa" y "perro". Cada uno de los comandos anteriores se agrega a la matriz, conservando los elementos que ya estaban allí.

Como vengo de otros idiomas, esta forma de agregarme a una matriz me parecía extraña. Esperaba tener que hacer algo como $ myArray + = "dog" o algo ... o tal vez un método "add ()" como las colecciones de Visual Basic. Pero esta sintaxis de aplicación directa es breve y conveniente.

Realmente tienes que usar la función unset () para eliminar elementos:

unset($myArray[1]);

... eliminaría "casa" de la matriz (las matrices están basadas en cero).

unset($myArray);

... destruiría toda la matriz.

Para ser claros, la sintaxis de los corchetes vacíos para agregar a una matriz es simplemente una forma de decirle a PHP que asigne los índices a cada valor automáticamente, en lugar de que USTED asigne los índices. Bajo las cubiertas, PHP está haciendo esto:

$myArray[0] = "tree"; $myArray[1] = "house"; $myArray[2] = "dog";

Puede asignar índices usted mismo si lo desea y puede usar cualquier número que desee. También puede asignar números de índice a algunos elementos y no a otros. Si lo hace, PHP completará los números de índice faltantes, incrementándose desde el número de índice más grande asignado a medida que avanza.

Así que si haces esto:

$myArray[10] = "tree"; $myArray[20] = "house"; $myArray[] = "dog";

... al elemento "perro" se le asignará un número de índice de 21. PHP no realiza una comparación de patrones inteligente para la asignación de índice incremental, por lo que no sabrá que es posible que desee asignar un índice de 30 a "perro ". Puede usar otras funciones para especificar el patrón de incremento para una matriz. No voy a entrar en eso aquí, pero está todo en los documentos de PHP.

Aclamaciones,

- = Cameron