Pregunta

Entonces, creé una matriz, agregando manualmente cada entrada:

$Sections[] = "A.1.4.1";//900 0 900 0 900 900 888 800 800 913 900 900 900
$Sections[] = "A.1.4.2.1";// 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 994 976 954 900 846 779 516 430 344 328 239 150
$Sections[] = "A.1.4.2.2";//900 900 900 900 900 900 900 900 900 900 850 800 750 700 650 600 550 500 376 356 336 227
$Sections[] = "A.1.4.2.3";//1000 1000 1000 1000 900 900 1000 1000 1000 1000 893 803 763 492 516 491 336 336 240 24
$Sections[] = "A.1.4.3";//1000 1000 879 588 560 366 192 867 807 665
$Sections[] = "A.1.4.4";//1000 1000 1000 1000 994 864 620 456 1000 1000 1000
$Sections[] = "A.1.5.1";//900 0 900 800 464
$Sections[] = "A.1.5.2";//a 1000 1000 846 240
$Sections[] = "A.1.5.2";//b 900 900 700 356 
$Sections[] = "A.1.5.3";//1000 879 192
$Sections[] = "A.1.5.4";//1012 922 456

//EU_A
$Sections[] = "A.2.5.1";//a 1048 1048 1048 1048 1004 800 576 378
$Sections[] = "A.2.5.1";//b 1048 1048 1048 1048 1004 820 592 384
$Sections[] = "A.2.5.2";//a 1048 1048  964  828  672 504 340 
$Sections[] = "A.2.5.2";//b 1048 1048  972  836  696 536 376
$Sections[] = "A.2.5.3";//a 1048 1048 1048 1048 1004 800 576 378
$Sections[] = "A.2.5.3";//b  944  944  944  944  944 820 592 384
$Sections[] = "A.2.5.3";//c 1048 1048 1048 1048 1004 820 592 384
$Sections[] = "A.2.5.4";//a 1048 1048 1048  910  776 560 308
$Sections[] = "A.2.5.4";//b  944  944  944  928  804 588 348
$Sections[] = "A.2.5.4";//c 1048 1048 1048  928  804 588 348
$Sections[] = "A.2.7.1";//   560  504  424  304  240 200
$Sections[] = "A.2.7.2";//   520  448  416  360  312 280

//EU_B
$Sections[] = "B.2.4.1";
$Sections[] = "B.2.4.1";
$Sections[] = "B.2.4.2";
$Sections[] = "B.2.4.2";
$Sections[] = "B.3.4.1";
$Sections[] = "B.3.4.1";
$Sections[] = "B.3.4.2";
$Sections[] = "B.3.4.2";

//TR-114
$Sections[] = "A.2.1";
$Sections[] = "A.2.2";

(Puede sentirse libre de ignorar los comentarios, esto fue literalmente un corte y pegar de mi código)

El problema que tengo es que cuando lo hago

return $Sections;

Y luego intente hacer referencia a cualquier índice, recibo un error al no ser inicializado.

Sin embargo, si lo hago

$return[] = $Sections;

return $return;

Puedo hacer referencia fácilmente a los índices.

He leído la documentación para matrices a fondo, pero no entiendo por qué hace esto. Sé que funciona, me gustaría saber por qué.

Solo puedo suponer que cuando la matriz de secciones $ se pasa a la matriz de retorno $, los índices están de alguna manera "renovados" o "actualizados".

Editar: olvidé mencionar que esto está dentro de una función, que devuelve la matriz creada en el interior. Estoy seguro de que todos habrían captado eso bastante rápido, con la declaración de regreso y todo

¿Fue útil?

Solución

Si intenta acceder a los índices como $Sections["B.2.4.1"], eso no funcionará, ya que no es cómo los has definido. Usando el [] Sintaxis para agregar a la matriz, está creando índices numéricos.

Tu matriz realmente se parece a la siguiente, con cada [] Agradecido al final de la matriz con un índice numérico:

$Sections[0] = "A.1.4.1";
$Sections[1] = "A.1.4.2.1";
 // etc

Otros consejos

No está especificando índices en su código. los [] La notación significa que PHP insertará el elemento al final de la matriz, y asignarle un nuevo índice numérico.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top