我有一个指向一堆其他数组的数组,结构类似于JSON对象。这是它的结构:
$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",
),
)
),
);
我正试图通过以下方式访问其中的每一个:
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"];
}
我有后者echo
就好了,但我无法打印 Global task 1
和Global task 2
。任何打印此文本的帮助都将受到高度赞赏!
答案 0 :(得分:1)
任务是$allRows
的关键,你需要在foreach中捕获它们:
foreach ($allRows as $taskName => $row) {
echo $taskName; // "Global task 1"
echo $row["major-task"]["points"];
}
答案 1 :(得分:1)
像这样使用:
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"];
}
答案 2 :(得分:1)
您要做的是获取key
multidimensional array
为此,请使用$key variable
foreach() loop
示例:
foreach ($allRows as $key => $value) {
echo $key; // Global task 1 or Global task 2
echo $value["major-task"]["points"];
}
此外,无关紧要,但在数组中使用字符串时,我喜欢使用''。例如:
echo $value['major-task']['points'];
答案 3 :(得分:0)
我建议你使用递归函数来解析多维数组并获取值,这里有参考链接以便更好地理解:
http://php.net/manual/en/function.array-walk-recursive.php
以下是您当前实施的解决方案:
foreach ($allRows as $key=>$row) {
// Print Global task 1, Global task 2, etc
//echo $row[0]; // unsure how to acquire this 'Global task x' text
echo $key;
// I've already accessed this just fine
echo $row["major-task"]["points"];
}
答案 4 :(得分:0)
这是一个关联数组,如果你想用索引访问它,你需要首先得到它的键array_keys($row)
数组:
foreach ($allRows as $row) {
$keys = array_keys($row);
print_r($row[$keys[0]]);
}