基于整数值的array_merge

时间:2018-08-30 20:43:36

标签: php arrays php-5.5

比方说,我有一个变量号变量$ 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。

我将如何去做类似的事情?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

您可以使用...the "splat" operator)扩展对array_fill的调用结果,该合并将根据需要合并任意数量的$dyn_array副本:

$num = 2;
$result = array_merge($my_array, ...array_fill(0, $num, $dyn_array));

请参见https://3v4l.org/amCJu


对于不支持...的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