php - 在数组上使用爆炸?
问题描述
什么是最简单的方法来转动阵列
[
0 => "3.1"
1 => "2.1"
]
进入
[
['tag_id' => 3, 'contact_id' => 1],
['tag_id' => 2, 'contact_id' => 1]
]
我可以使用 laravel/collections 内置的东西吗?
我知道我可以创建一个 foreach 循环并使用 explode 并填充一个新数组,但我想知道 PHP 中是否有内置函数或我可以使用的 laravel 集合方法。
解决方案
我认为您正在寻找combine
(或 PHP 等价物array_combine
)
$keys = collect([ 'tag_id', 'contact_id' ]);
$result = collect([
"3.1",
"2.1"
])->filter(function ($str) { return Str::contains($str, '.'); })
->map(function ($str) use ($keys) {
return $keys->combine(collect(explode('.', $str))->take(2));
});
推荐阅读
- php - 作为数组索引的常量数组值在 foreach 中不起作用
- angular - Angular 6:动态表单
- r - 如何证明 R 中图例的多个部分是合理的?
- raspberry-pi - 带有 systemd 的树莓派上的 Python discord bot
- react-native - 如何在本机反应中设置多行标题?
- javascript - 如何在 Vue v-if 中使用异步函数?
- python - 有没有办法训练 ML 模型将单词分类?
- python-3.x - 在 Python 中检查回文三角形正方形
- python - 熊猫 groupby + 变换和多列
- java - Intellj 无法解析符号 Junit., Cucumber