从数组中的数组中获取值
fetch values from array within an array
我有一个多维数组,我想从这个数组中提取每个值。
该数组存储在 $data.
{"success":true,"categories":
[
{"
category_id":"C1",
"parent_id":"P1",
"name":"N1",
"categories":
[
{
"category_id":"C11",
"parent_id":"P11",
"name":"N11",
},
{
"category_id":"C12",
"parent_id":"P12",
"name":"N12",
},
],
"status":"1"
},
{
category_id":"C2",
"parent_id":"P2",
"name":"N2",
"categories":
[
{
"category_id":"C21",
"parent_id":"P21",
"name":"N21",
[
{
"category_id":"C22",
"parent_id":"P23",
"name":"N24",
}
],
"status":"2"
}
],
"status":"3"
},
]
}
我试过使用
$total = $data['categories']['category_id'];
获取值C11
但是没能做到。
谁能告诉我如何获取所有数据,尤其是 C22
那是 JSON,不是 php 多维数组。您可以使用 json_decode 函数来读取它。
您必须先使用 json_decode。
$array = json_decode($data, true);
然后你就可以按照你说的访问数组了。
或者循环浏览类别:
if (!empty($array)) {
foreach ($array['categories'] as $category) {
echo $category['id'];
}
}
您可能必须递归地执行此操作以循环遍历类别中的类别。但这完全取决于您想要实现的目标。如果嵌套循环总是只有一层深,它就可以完成这项工作。
编辑
你提供的JSON不太对,我已经在下面更正了:
{
"success": true,
"categories": [
{
"category_id": "C1",
"parent_id": "P1",
"name": "N1",
"categories": [
{
"category_id": "C11",
"parent_id": "P11",
"name": "N11"
},
{
"category_id": "C12",
"parent_id": "P12",
"name": "N12"
}
],
"status": "1"
},
{
"category_id": "C2",
"parent_id": "P2",
"name": "N2",
"categories": [
{
"category_id": "C21",
"parent_id": "P21",
"name": "N21",
"categories": [
{
"category_id": "C22",
"parent_id": "P23",
"name": "N24"
}
],
"status": "2"
}
],
"status": "3"
}
]
}
有几个尾随逗号和遗漏的引号。
数据不在 PHP 数组中,它是 JSON 数组。您必须使用 json_decode() 函数对其进行解码。
我有一个多维数组,我想从这个数组中提取每个值。 该数组存储在 $data.
{"success":true,"categories":
[
{"
category_id":"C1",
"parent_id":"P1",
"name":"N1",
"categories":
[
{
"category_id":"C11",
"parent_id":"P11",
"name":"N11",
},
{
"category_id":"C12",
"parent_id":"P12",
"name":"N12",
},
],
"status":"1"
},
{
category_id":"C2",
"parent_id":"P2",
"name":"N2",
"categories":
[
{
"category_id":"C21",
"parent_id":"P21",
"name":"N21",
[
{
"category_id":"C22",
"parent_id":"P23",
"name":"N24",
}
],
"status":"2"
}
],
"status":"3"
},
]
}
我试过使用
$total = $data['categories']['category_id'];
获取值C11
但是没能做到。
谁能告诉我如何获取所有数据,尤其是 C22
那是 JSON,不是 php 多维数组。您可以使用 json_decode 函数来读取它。
您必须先使用 json_decode。
$array = json_decode($data, true);
然后你就可以按照你说的访问数组了。 或者循环浏览类别:
if (!empty($array)) {
foreach ($array['categories'] as $category) {
echo $category['id'];
}
}
您可能必须递归地执行此操作以循环遍历类别中的类别。但这完全取决于您想要实现的目标。如果嵌套循环总是只有一层深,它就可以完成这项工作。
编辑
你提供的JSON不太对,我已经在下面更正了:
{
"success": true,
"categories": [
{
"category_id": "C1",
"parent_id": "P1",
"name": "N1",
"categories": [
{
"category_id": "C11",
"parent_id": "P11",
"name": "N11"
},
{
"category_id": "C12",
"parent_id": "P12",
"name": "N12"
}
],
"status": "1"
},
{
"category_id": "C2",
"parent_id": "P2",
"name": "N2",
"categories": [
{
"category_id": "C21",
"parent_id": "P21",
"name": "N21",
"categories": [
{
"category_id": "C22",
"parent_id": "P23",
"name": "N24"
}
],
"status": "2"
}
],
"status": "3"
}
]
}
有几个尾随逗号和遗漏的引号。
数据不在 PHP 数组中,它是 JSON 数组。您必须使用 json_decode() 函数对其进行解码。