Jak*_*ttk 4 php arrays array-merge
周围有很多讨论'array_merge(...)' is used in a loop and is a resources greedy construction.
对于简单数组,有一个使用扩展运算符的简单解决方案。例如
$arraysToMerge = [ [1, 2], [2, 3], [5,8] ];
$arraysMerged = array_merge([], ...$arraysToMerge);
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是,在以下情况下我找不到避免这种情况的方法:
假设您有一个用户列表,并且每个用户都有多个社交媒体帐户。
您将如何创建一个包含所有用户的所有社交媒体帐户的数组?我发现的唯一解决方案是这样的:
$allSocialMediaAccounts= [];
foreach ($users as $user) {
$allSocialMediaAccounts= array_merge($accounts, $user['socialMediaAccounts']);
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样$arraysToMerge使用array_column()函数$users:
$arraysToMerge = array_column($users, 'socialMediaAccounts');
$arraysMerged = array_merge(...$arraysToMerge);
Run Code Online (Sandbox Code Playgroud)
马特建议您不需要合并到空数组中,因此我根据他的建议调整了代码。