Php 从多重DEM阵列中提取数据
我一直在尝试从一个大的多维数组中为每个学生提取以下数据(如下图所示) 我通过搜索尝试了各种选项,包括切片、拼接和for循环 每次尝试都会遇到所有或部分数据的失败。我一直无法获得第一个、中间个和姓氏的第三个嵌套数据 如何获取这样一个大型多重DEM阵列,并在foreach循环中提取上面列出的数据,以便将其导入数据库?我觉得这比我做的要简单得多。我还没有包括任何代码,因为我还没有任何看起来非常有用的东西 下面是一个示例数组。谢谢Php 从多重DEM阵列中提取数据,php,html,arrays,json,api,Php,Html,Arrays,Json,Api,我一直在尝试从一个大的多维数组中为每个学生提取以下数据(如下图所示) 我通过搜索尝试了各种选项,包括切片、拼接和for循环 每次尝试都会遇到所有或部分数据的失败。我一直无法获得第一个、中间个和姓氏的第三个嵌套数据 如何获取这样一个大型多重DEM阵列,并在foreach循环中提取上面列出的数据,以便将其导入数据库?我觉得这比我做的要简单得多。我还没有包括任何代码,因为我还没有任何看起来非常有用的东西 下面是一个示例数组。谢谢 Array ( [data] =&
Array
(
[data] => Array
(
[0] => Array
(
[data] => Array
(
[gender] => M
[dob] => 7/17/2008
[email] =>
[grade] => 2
[schools] => Array
(
[0] =>12345
)
[school] => 12345
[created] => 2018-04-16T14:01:00.437Z
[name] => Array
(
[first] => Jacob
[last] => Smith
[middle] => Rabbitboom
)
[location] => Array
(
[zip] =>
[address] =>
[city] =>
[lat] =>
[lon] =>
[state] =>
)
[district] => 123456
[last_modified] => 2018-04-16T14:01:00.437Z
[race] =>
[hispanic_ethnicity] =>
[graduation_year] =>
[student_number] => 1234567
[credentials] => Array
(
[district_username] =>
)
[id] => 123456
)
[uri] =>
)
[1] => Array
(
[data] => Array
(
[gender] => F
[dob] => 7/17/2008
[email] =>
[grade] => 2
[schools] => Array
(
[0] =>12346
)
[school] => 12345
[created] => 2018-04-16T14:01:00.437Z
[name] => Array
(
[first] => Jason
[last] => Smith
[middle] => RobesPerrie
)
[location] => Array
(
[zip] =>
[address] =>
[city] =>
[lat] =>
[lon] =>
[state] =>
)
[district] => 123456
[last_modified] => 2018-04-16T14:01:00.437Z
[race] =>
[hispanic_ethnicity] =>
[graduation_year] =>
[student_number] => 1234568
[credentials] => Array
(
[district_username] =>
)
[id] => 123459
)
[uri] =>
)
最简单的方法可能是提取嵌套的
数据
数组并循环:
foreach(array_column($array['data'], 'data') as $data) {
echo $data['gender'];
echo $data['name']['first'];
}
如果
schools
是可变长度的,那么你需要循环它,或者内爆(',',$data['schools'))
好吧,我不确定这是否会让它更容易,但除了我列出的数据之外,我不关心任何数据。不,这很容易。我测试了它,得到了我需要的。非常感谢你!
foreach(array_column($array['data'], 'data') as $data) {
echo $data['gender'];
echo $data['name']['first'];
}