PHP I通过更大的数组复制数组值
我想知道是否有可能将一个数组多次插入一个更大的数组,使较小数组的值填满较大的数组 假设array1有值[0=>'a']、[1=>'b']、[2=>'c'],array2可以容纳8个值。那么,我如何获取array1的值并将它们连续插入array2,直到array2耗尽空间,这样array2将具有值'a'、'b'、'c'、'a'、'b'、'c'、'a'、'b' 提前感谢,,PHP I通过更大的数组复制数组值,php,arrays,insert,loops,Php,Arrays,Insert,Loops,我想知道是否有可能将一个数组多次插入一个更大的数组,使较小数组的值填满较大的数组 假设array1有值[0=>'a']、[1=>'b']、[2=>'c'],array2可以容纳8个值。那么,我如何获取array1的值并将它们连续插入array2,直到array2耗尽空间,这样array2将具有值'a'、'b'、'c'、'a'、'b'、'c'、'a'、'b' 提前感谢,, ~Hussain~基本上,您希望在小数组上循环,将每个元素添加到新数组中,直到达到所需的大小 考虑这一点: $max = 8;
~Hussain~基本上,您希望在小数组上循环,将每个元素添加到新数组中,直到达到所需的大小 考虑这一点:
$max = 8;
$Orig_Array = array('a', 'b', 'c');
$Next_Array = array();
while True
{
foreach($Orig_Array as $v)
{
$Next_Array[] = $v;
if(count($Next_Array) >= $max)
break 2;
}
}
假设输入数组按顺序编制索引:
$len = count($input);
$output = array();
for ($i = 0; $i < MAX_SIZE; ++$i)
$output[] = $input[$i % $len];
或
第一个填充数组,使其至少具有所需数量的元素,并截断其余元素。第二个将填充一个数组,将所需的元素数乘以原始数组大小,并将其余元素相加。下面是一个使用输入数组的内部指针,以保持概念上的简单:
$input = array(1, 2, 3);
$size = 32;
$output = array();
for ( $i = 0; $i < $size; $i++ ) {
$curr = current($input);
if ( $curr === false ) {
reset($input);
$curr = current($input);
}
$output[] = $curr;
next($input);
}
print_r($output);die;
$a = array('a','b','c');
$desired = 8;
$b = array();
for($i=0;$i<$desired/count($a);++$i) $b = array_merge($b,$a);
for($i=0;$i<($desired-count($b)-1);++$i) $b[] = $a[$i];
$input = array(1, 2, 3);
$size = 32;
$output = array();
for ( $i = 0; $i < $size; $i++ ) {
$curr = current($input);
if ( $curr === false ) {
reset($input);
$curr = current($input);
}
$output[] = $curr;
next($input);
}
print_r($output);die;