我可以收集爆炸然后再次爆炸吗?
Can I collect explode then explode again?
我正在尝试使用文本文件创建数据保存变量。我读到 laravel 中的 collect 函数是管理数据的正确选择。
下面是我用PHP_EOL爆破后保存的数据:
我想做的是用“|”对每个数组再爆炸一次,所以我的代码是这样的,但它不能。
$temps=explode(PHP_EOL,$note);
$isi=collect([
explode('|',$temps)
]);
此代码只有在伴随着这样的手动数组时才能应用:
$isi=collect([
explode('|',$temps[0]),
explode('|',$temps[2])
]);
dd输出:
正如我认为你已经解决的那样,explode returns 一个数组但接受一个字符串,所以你不能将 explode
的结果直接传递给另一个 explode
呼叫.
相反,您需要分别获取第一个 explode
和 explode
生成的数组中的每个字符串。
显然,尝试 hard-code 对数组中每个项目的引用(根据您的尝试)是不切实际的,因此您可以使用循环来获取每个项目,或者更简洁的方法是使用 array_map,如以下示例所示:
function pipeExplode($str)
{
return explode("|", $str);
}
$text = "sdlkfjsdl|kwflwerflwekr|wlkjlgk4w\n3rtljhrfgkjed|3jhkrjghd|4t44thj\n33rtlhwege|3rth3herjgke|hkjfgdf";
$arr = explode(PHP_EOL, $text);
$finalArr = array_map('pipeExplode', $arr);
print_r($finalArr);
这将从第一个数组中获取每个字符串,将其传递给 pipeExplode
函数以从中获取一个新数组,然后将该数组添加回由 array_map
函数。
我正在尝试使用文本文件创建数据保存变量。我读到 laravel 中的 collect 函数是管理数据的正确选择。
下面是我用PHP_EOL爆破后保存的数据:
我想做的是用“|”对每个数组再爆炸一次,所以我的代码是这样的,但它不能。
$temps=explode(PHP_EOL,$note);
$isi=collect([
explode('|',$temps)
]);
此代码只有在伴随着这样的手动数组时才能应用:
$isi=collect([
explode('|',$temps[0]),
explode('|',$temps[2])
]);
dd输出:
正如我认为你已经解决的那样,explode returns 一个数组但接受一个字符串,所以你不能将 explode
的结果直接传递给另一个 explode
呼叫.
相反,您需要分别获取第一个 explode
和 explode
生成的数组中的每个字符串。
显然,尝试 hard-code 对数组中每个项目的引用(根据您的尝试)是不切实际的,因此您可以使用循环来获取每个项目,或者更简洁的方法是使用 array_map,如以下示例所示:
function pipeExplode($str)
{
return explode("|", $str);
}
$text = "sdlkfjsdl|kwflwerflwekr|wlkjlgk4w\n3rtljhrfgkjed|3jhkrjghd|4t44thj\n33rtlhwege|3rth3herjgke|hkjfgdf";
$arr = explode(PHP_EOL, $text);
$finalArr = array_map('pipeExplode', $arr);
print_r($finalArr);
这将从第一个数组中获取每个字符串,将其传递给 pipeExplode
函数以从中获取一个新数组,然后将该数组添加回由 array_map
函数。