Daha büyük bir dizi aracılığıyla diziler değerleri PHP-ILooping

4 Cevap php

Bu küçük dizinin değerleri büyük dizi doldurmak, böylece bir dizi çekmek ve daha büyük bir dizi, birden çok kez, içine dizinin değerlerini eklemek mümkün olup olmadığını bilmek istiyorum.

Dizi1 değerlerini ([0 => 'a'], [1 => 'b'], [2 => 'c']), ve dizi2 8 değerlerini tutabilir söylüyorlar. Bu array2 değerlerin 'a' olurdu yani, 'a', 'b', 'c', 'b', Peki, nasıl dizi1 değerlerini alacağını ve dizi2 alanı biterse kadar sürekli dizi2 içine ekleyebilirsiniz, 'c', 'a', 'b'?

Thanks in advance, ~Hussain~

4 Cevap

Esasen, bunu istediğiniz boyutu ulaşıncaya kadar yeni bir dizi için her öğe ekleyerek, küçük dizi ve üzerinde döngü istiyorum.

Bu düşünün:

$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;
    }
}

Lütfen giriş dizi endeksli sıralı olduğunu varsayarsak:

$len = count($input);
$output = array();
for ($i = 0; $i < MAX_SIZE; ++$i) 
  $output[] = $input[$i % $len];
$a = array('a','b','c');
$desired = 8;

$b = array();
for($i=0;$i<($desired/count($a))+1;++$i) $b = array_merge($b,$a);
array_splice($b,$desired);

Veya

$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];

İlki bir dizi doldurur böylece at least kalanı kapalı elemanları ve kesim sayısını arzu etti. İkinci bir elemanların istenilen sayıda orijinal dizi boyutunu modulo bir dizi yukarı doldurur ve gerisini ekler.

Burada kavramsal şeyleri basit tutmak için, giriş dizinin iç imlecini kullanarak biri:

$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;