【发布时间】:2017-03-12 02:34:05
【问题描述】:
我正在从 mysql 数据库中检索数据,如下面的数组:
$data = [
0 => [
'id' => 1,
'Benutzer' => 'foo',
'Passwort' => '123456',
'Adresse' => [
'Strasse' => 'bla', 'Ort' => 'blubb'
],
'Kommentare' => [
0 => ['Titel' => 'bar', 'Text' => 'This is great dude!'],
1 => ['Titel' => 'baz', 'Text' => 'Wow, awesome!']
]
],
]
这样的数据应存储在 mongo 数据库中,因此我想用来自配置文件或语言文件('Benutzer' -> 'username')的翻译字符串替换键名。
我真的必须遍历数组并替换键还是实现这一目标的更好方法?
【问题讨论】:
-
还有其他方法,例如将
array_combine与array_map一起使用,但相信我,与简单的 foreach 循环相比,它会使您的代码更加复杂且可读性更低。 -
是的,你是对的。但这是用于具有大量记录的导入。所以一个 foreach 循环是非常昂贵的。我已经在使用
array_combine和array_map。但是很难处理数组值。 -
我认为没有一种解决方案不会至少遍历所有数组项一次。甚至像
array_map这样的 php 数组函数也在内部完成。 -
如果您的数组太大,您可能希望将其分成块并分别处理每个块。最好的办法是将每个块推入队列,让排队系统在后台处理它们。
标签: php mysql arrays mongodb laravel