在php-laravel/api中合并两个foreach
你好!我成功地找到了缩短代码的答案。有人说我可以合并foreach语句,使其变得更短。但是我到处搜索,但似乎找不到任何类似代码的解决方案。我只是想知道如何将这两个foreach合并 这是我的密码:在php-laravel/api中合并两个foreach,php,laravel,api,Php,Laravel,Api,你好!我成功地找到了缩短代码的答案。有人说我可以合并foreach语句,使其变得更短。但是我到处搜索,但似乎找不到任何类似代码的解决方案。我只是想知道如何将这两个foreach合并 这是我的密码: $newArray = []; $keys = ['name', 'sex', 'age', 'height', 'weight']; foreach(explode(PHP_EOL, Storage::get('upload/test.txt')) as $key =>
$newArray = [];
$keys = ['name', 'sex', 'age', 'height', 'weight'];
foreach(explode(PHP_EOL, Storage::get('upload/test.txt')) as $key => $line) {
$finalArray = [];
foreach( explode(',', $line) as $i => $value){
$finalArray[ $keys [ $i ] ] = $value;
}
array_push($newArray, $finalArray);
}
die(json_encode($newArray));
以下是与第一个代码具有相同输出的另一个代码:
$newArray = array();
foreach(explode(PHP_EOL, Storage::get('upload/test.txt')) as $key => $line) {
array_push($newArray, explode(',', $line));
}
$finalArray = array();
foreach($newArray as $key) {
$key = [
"name" => $key[0],
"sex" => $key[1],
"age" => $key[2],
"height" => $key[3],
"weight" => $key[4],
];
array_push($finalArray, $key);
}
die(json_encode($finalArray));
您可以使用以下方法使其更简单: 或者您可以使用并执行以下操作:
$keys = ['name', 'sex', 'age', 'height', 'weight'];
$newArray = array_map(function ($line) use ($keys) {
return array_combine($keys, explode(',', $line));
}, explode(PHP_EOL, Storage::get('upload/test.txt')));
通过使用single for循环,而不是foreach循环来检查这个!
$keys = ['name', 'sex', 'age', 'height', 'weight'];
$newArray = array_map(function ($line) use ($keys) {
return array_combine($keys, explode(',', $line));
}, explode(PHP_EOL, Storage::get('upload/test.txt')));