Tengo una matriz que apunta a muchas otras matrices, estructuradas como un objeto JSON. Esta es la estructura de la misma:
$allRows= array( "Global task 1"=> array( "major-task"=> array( "points"=> 850, ), "minor-task"=> array( array( "points"=> 400, "task"=> "Minor task 1", ), array( "points"=> 200, "task"=> "Minor task 2", ), array( "points"=> 250, "task"=> "Minor task 3", ), ) ), "Global task 2"=> array( "major-task"=> array( "points"=> 850, ), "minor-task"=> array( array( "points"=> 400, "task"=> "Minor task 1", ), array( "points"=> 200, "task"=> "Minor task 2", ), array( "points"=> 250, "task"=> "Minor task 3", ), ) ), );Estoy tratando de poder acceder a cada uno de estos de la siguiente manera:
foreach ($allRows as $row) { // Print Global task 1, Global task 2, etc echo $row[0]; // unsure how to acquire this 'Global task x' text // I've already accessed this just fine echo $row["major-task"]["points"]; } Obtuve el último echo muy bien, pero no puedo imprimir la Global task 1 y Global task 2 . ¡Cualquier ayuda para imprimir este texto sería muy apreciada!
Las tareas son las claves para $allRows , deberá capturarlas en el foreach:
foreach ($allRows as $taskName => $row) { echo $taskName; // "Global task 1" echo $row["major-task"]["points"]; }Úsalo así:
foreach ($allRows as $key => $row) { // Print Global task 1, Global task 2, etc echo $key; // I've already accessed this just fine echo $row["major-task"]["points"]; }Lo que está tratando de hacer es obtener la key para la multidimensional array
Para hacer esto, defina la $key variable con el foreach() loop
Ejemplo:
foreach ($allRows as $key => $value) { echo $key; // Global task 1 or Global task 2 echo $value["major-task"]["points"]; }Además, no importa , pero cuando uso cadenas en matrices, me gusta usar ''. Ejemplo:
echo $value['major-task']['points'];