PHP获取指向另一个数组对象的数组字符串
我有一个数组,它指向一堆其他数组,结构类似于JSON对象。这是它的结构:PHP获取指向另一个数组对象的数组字符串,php,arrays,json,object,Php,Arrays,Json,Object,我有一个数组,它指向一堆其他数组,结构类似于JSON对象。这是它的结构: $allRows= array( "Global task 1"=> array( "major-task"=> array( "points"=> 850, ), "minor-task"=> array( array( "points"=> 400,
$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
很好,但是我无法打印全局任务1
和全局任务2
。任何帮助打印此文本将不胜感激 任务是$allRows
的关键,您需要在foreach中捕获它们:
foreach ($allRows as $taskName => $row) {
echo $taskName; // "Global task 1"
echo $row["major-task"]["points"];
}
像这样使用它:
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"];
}
您要做的是获取多维数组的
键
为此,使用foreach()循环定义a$key变量
例如:
foreach ($allRows as $key => $value) {
echo $key; // Global task 1 or Global task 2
echo $value["major-task"]["points"];
}
另外,并不重要,但在数组中使用字符串时,我喜欢使用“”。例如:
echo $value['major-task']['points'];
我建议您使用递归函数解析多维数组并获取值,以下是参考链接,以便更好地理解:
以下是您当前实施的解决方案:
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"];
}
这是一个关联数组,如果要使用索引访问它,需要先获取其键数组array\u keys($row)
:
foreach ($allRows as $row) {
$keys = array_keys($row);
print_r($row[$keys[0]]);
}
获取foreach循环中的键和值,如soforeach($taskName=>allRows as$taskName=>$row){//result here!}
谢谢,我最初尝试过这个方法,但一直尝试echo$row代码>而不是任务名。当它允许我的时候,我会接受的!