我在 Laravel 应用程序上导入了 Excel,并提取了我想要循环遍历行并获取值的数据。我正在获取值,但它不断重复
public function bulkTransfer(Request $request)
{
Log::info("########## Validating File #########");
$request->validate([
"file" => 'required|file|mimes:csv,xlsx'
],[
"fileName.mimes" => "File should be a csv or excel file"
]);
Log::info("########## File Validated #########");
if($request->has("file")){
$allAccounts = Excel::toArray(new \stdClass(), $request->file("file"));
foreach ($allAccounts as $accounts){
foreach ($accounts as $account){
for ($i=0; $i<=count($account); $i++){
echo '<p>'. $account[1] . " " . $account[2] . " " . $account[3] . "</p>";
}
}
}
}
}
这是我从excel文件中获取的数据数组
array:1 [ // app/Http/Controllers/TransferController.php:33
0 => array:4 [
0 => array:4 [
0 => "Account Name"
1 => "Account Number"
2 => "Bank Code"
3 => "Amount"
]
1 => array:4 [
0 => "Okafor John"
1 => 98393
2 => 988
3 => 3000
]
2 => array:4 [
0 => "Joy Ema"
1 => 87383
2 => 8378
3 => 2000
]
3 => array:4 [
0 => "Ike Sam"
1 => 89382
2 => 888
3 => 1500
]
]
]
当我运行代码时,这是我得到的输出
账号 银行代码 金额
账号 银行代码 金额
账号 银行代码 金额
账号 银行代码 金额
账号 银行代码 金额
98393 988 3000
98393 988 3000
98393 988 3000
98393 988 3000
98393 988 3000
87383 8378 2000
87383 8378 2000
87383 8378 2000
87383 8378 2000
87383 8378 2000
89382 888 1500
89382 888 1500
89382 888 1500
89382 888 1500
89382 888 1500
您可以这样显示项目:
if ($request->has("file")) {
$allAccounts = Excel::toArray(new \stdClass(), $request->file("file"));
foreach ($allAccounts as $accounts) {
foreach ($accounts as $account) {
//your code :
echo '<p>' . $account[1] . " " . $account[2] . " " . $account[3] . "</p>";
// better way
echo sprintf('<p> %s %s %s %s </p>', $account[0], $account[1], $account[2], $account[3]);
// php 8.2
echo sprintf('<p> %s %s %s %s </p>', ...$account);
}
}
}
检查此代码