2015-12-18 3 views
0

Я борюсь с некоторыми циклами в обработке цикла. Я хочу вывести один инкрементный элемент $ дополнительного массива после каждого 3 элемента массива $ items. Кроме того, когда мы приходим к элементу -15 в массиве $ items, я хочу начать с лишнего-1 снова с $ дополнительным массивом.Сочетание элементов массива с циклами


$items = array(
    "item-1", 
    "item-2", 
    "item-3", 

    "item-4", 
    "item-5", 
    "item-6", 

    "item-7", 
    "item-8", 
    "item-9", 

    "item-10", 
    "item-11", 
    "item-12", 

    "item-13", 
    "item-14", 
    "item-15", 
); 

$additional = array(
    "extra-1", 
    "extra-2", 
    "extra-3", 
    "extra-4", 
); 

В конце концов, я хочу, чтобы в конечном итоге с чем-то вроде этого:

 
    "item-1", 
    "item-2", 
    "item-3", 
"extra-1", 
    "item-4", 
    "item-5", 
    "item-6", 
"extra-2", 
    "item-7", 
    "item-8", 
    "item-9", 
"extra-3", 
    "item-10", 
    "item-11", 
    "item-12", 
"extra-4", 
    "item-13", 
    "item-14", 
    "item-15", 
"extra-1" 

Я попробовал некоторые вещи с разными петлями (для, Еогеасп и в то время) в сочетании с различными счетчиками.

Любая помощь приветствуется!

+0

Я смущен о том, какую продукцию вы ищете. Почему бы вам просто «$ items + = $ Additional;»? – Lando

+0

Привет @Landen. Вкратце: я хочу вывести один элемент из $ дополнительного массива ПОСЛЕ 3 элементов массива $ items. – Thijs

ответ

1

Следующий код делает работу:

$length = count($items); 
$additionalLength = count($additional); 
for ($i = 1; $i <= $length; ++$i) { 
    echo $items[$i - 1] . "\n"; 
    if ($i % 3 === 0) { 
     echo $additional[(($i/3) - 1) % $additionalLength] . "\n"; 
    } 
} 
+0

WOW Спасибо, Игорь! – Thijs

0

Вот мое решение, довольно уродливые, но это работает!

$counter = 0; 
$first_value = 0; 
foreach ($items as $values) { 
    $temp[] = $values; 
    $counter++; 
    if ($counter % 3 == 0 && count($additional) != 0) { 
     $first_value ? $temp[] = array_shift($additional) : $extra1 = array_shift($additional); 
     $first_value ?: $temp[] = $extra1; 
     $first_value = 1; 
    } 
} 
$temp[] = $extra1; 
Смежные вопросы