比方说,我有一个变量号变量$ num,它可以包含任何整数,而我有一个数组$ my_array,它包含一些值,如:
$my_array = ['a','b','c'];
例如,我想基于$ num的值将另一个动态数组$ dyn_array与$ my_array合并。
假设$ num = 2,我想拥有:
$merged_array = array_merge($my_array, $dyn_array, $dyn_array);
如果$ num = 3,我希望拥有:
$merged_array = array_merge($my_array, $dyn_array, $dyn_array, $dyn_array);
因此,基本上,根据$ num的值在array_merge内部添加$ dyn_array。
我将如何去做类似的事情?
感谢您的帮助
答案 0 :(得分:3)
您可以使用...
(the "splat" operator)扩展对array_fill
的调用结果,该合并将根据需要合并任意数量的$dyn_array
副本:>
$num = 2;
$result = array_merge($my_array, ...array_fill(0, $num, $dyn_array));
对于不支持...
的5.6之前的PHP版本,您可以改为使用以下行:
$result = array_reduce(
array_fill(0, $num, $dyn_array),
function($carry, $item) { return array_merge($carry, $item); },
$my_array
);
遍历array_fill
调用中的相同副本,一次将它们合并到结果中。参见https://3v4l.org/s7dvd
答案 1 :(得分:0)
考虑到您使用的是PHP 5.5,我有一个更长的解决方法。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Illegal use of mappedBy on both sides of the relationship: com.example.entities.Role.users
我决定将数组添加为第一个键并通过引用进行添加,因此我们将始终对其进行更新。
然后,我按项目数量循环-1,在原始数组中一一添加。
代码在这里经过测试:https://3v4l.org/LF0CR