php 具有多个关联数组的 var,一次获取一个数组的值
php var with multiple assoc arrays, get values one array at a time
最初我使用上传的 .csv 文件并一次遍历一行值..使用下面的 while
循环。
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
var_dump($data);
$importIt = $repo->impThreeCSV($which, $data);
}
我重做了 .csv 上传功能,现在是一个 Web 表单,我将 json 发送到 'save button' 上的 PHP 文件。我现在有一个包含多个关联数组的变量..
$fd = json_decode($df, true);
var_dump($fd);
例如,上面的转储包含多个数组,如下所示:即(~300 个类似的数组,如下所示)。
array (size=806)
0 =>
array (size=18)
'ATM_ID' => string 'AFF-MIL-TWR' (length=11)
'FAC_IDENT' => string 'AFF' (length=3)
'LG_NAME' => string 'BLACH BLAH ACADEMY' (length=20)
'BASIC_TP' => string 'MIL-TWR' (length=7)
.................
如何仅在这些数组中迭代 VALUES,一次一个
时间与我原来的 while
循环相同..(这将是
非常理想,所以我不必重做整个后端)。
我在处理多个数组和获取
值只出来..
我已经尝试了以下两种尝试,我只是得到 'arrayarrayarray' 或
类似 var_dump
。我需要把每个数组分解成它吗
自己的变种?我在这里做错了什么?我需要 运行 算一算
许多数组包含在我的 var?
$fd = json_decode($df, true);
var_dump($fd);
$data = array_values($fd);
foreach ($data as $array_key) {
echo $array_key;
}
$array_keys = array_keys($fd);
foreach ($array_keys as $array_key) {
echo $array_key;
}
P.S。不,我不能使用 pandas,我希望。
您需要执行一个 foreach 循环遍历每个数组,然后执行另一个 foreach 循环遍历您正在循环的数组的每个值。
$decodedJson = [
[
'ATM_ID' => 'AFF-MIL-TWR 1',
'FAC_IDENT' => 'AFF',
'LG_NAME' => 'BLACH BLAH ACADEMY',
'BASIC_TP' => 'MIL-TWR',
],
[
'ATM_ID' => 'AFF-MIL-TWR 2',
'FAC_IDENT' => 'AFF',
'LG_NAME' => 'BLACH BLAH ACADEMY',
'BASIC_TP' => 'MIL-TWR',
],
];
foreach ($decodedJson as $array) {
foreach ($array as $item) {
print $item; # => AFF-MIL-TWR 1
}
}
假设您希望以与原始代码相同的方式处理数据,您只需使用如下内容:
foreach ($fd as $data) {
$importIt = $repo->impThreeCSV($which, array_values($data));
}
注意我已经使用 array_values
将 $data
从关联数组转换为数字索引数组,即与 fgetcsv
returns 相同的格式。这可能 - 取决于您的 $repo->impThreeCSV
代码 - 不是必需的。
最初我使用上传的 .csv 文件并一次遍历一行值..使用下面的 while
循环。
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
var_dump($data);
$importIt = $repo->impThreeCSV($which, $data);
}
我重做了 .csv 上传功能,现在是一个 Web 表单,我将 json 发送到 'save button' 上的 PHP 文件。我现在有一个包含多个关联数组的变量..
$fd = json_decode($df, true);
var_dump($fd);
例如,上面的转储包含多个数组,如下所示:即(~300 个类似的数组,如下所示)。
array (size=806)
0 =>
array (size=18)
'ATM_ID' => string 'AFF-MIL-TWR' (length=11)
'FAC_IDENT' => string 'AFF' (length=3)
'LG_NAME' => string 'BLACH BLAH ACADEMY' (length=20)
'BASIC_TP' => string 'MIL-TWR' (length=7)
.................
如何仅在这些数组中迭代 VALUES,一次一个 时间与我原来的
while
循环相同..(这将是 非常理想,所以我不必重做整个后端)。我在处理多个数组和获取 值只出来..
我已经尝试了以下两种尝试,我只是得到 'arrayarrayarray' 或 类似
var_dump
。我需要把每个数组分解成它吗 自己的变种?我在这里做错了什么?我需要 运行 算一算 许多数组包含在我的 var?$fd = json_decode($df, true); var_dump($fd); $data = array_values($fd); foreach ($data as $array_key) { echo $array_key; } $array_keys = array_keys($fd); foreach ($array_keys as $array_key) { echo $array_key; }
P.S。不,我不能使用 pandas,我希望。
您需要执行一个 foreach 循环遍历每个数组,然后执行另一个 foreach 循环遍历您正在循环的数组的每个值。
$decodedJson = [
[
'ATM_ID' => 'AFF-MIL-TWR 1',
'FAC_IDENT' => 'AFF',
'LG_NAME' => 'BLACH BLAH ACADEMY',
'BASIC_TP' => 'MIL-TWR',
],
[
'ATM_ID' => 'AFF-MIL-TWR 2',
'FAC_IDENT' => 'AFF',
'LG_NAME' => 'BLACH BLAH ACADEMY',
'BASIC_TP' => 'MIL-TWR',
],
];
foreach ($decodedJson as $array) {
foreach ($array as $item) {
print $item; # => AFF-MIL-TWR 1
}
}
假设您希望以与原始代码相同的方式处理数据,您只需使用如下内容:
foreach ($fd as $data) {
$importIt = $repo->impThreeCSV($which, array_values($data));
}
注意我已经使用 array_values
将 $data
从关联数组转换为数字索引数组,即与 fgetcsv
returns 相同的格式。这可能 - 取决于您的 $repo->impThreeCSV
代码 - 不是必需的。