Неограниченный стек в цикле php foreach - PullRequest
0 голосов
/ 24 апреля 2018

Возможно ли иметь стеки без повторения цикла foreach из приведенного ниже кода.

<?php
$stack1 = array('a', 'b', 'c', 'd', 'e','f','g','h','i','j'); 
$lp1 = 0;
$id1 = 0;
foreach($stack1 AS $v){         
    $lp1++;
    if($lp1==3){
      break;
    }else{
      $id1++;
      echo 'Stack-1 => '.$v.'<br>';      
    }    
}
$stack2 = array_slice($stack1, $id1);
$lp2 = 0;
$id2 = 0;
foreach ($stack2 as $v2){
    $lp2++;
    if($lp2==3){
      break;
    }else{
      $id2++;
      echo 'Stack-2 => '.$v2.'<br>';
    }
}
$stack3 = array_slice($stack2, $id2);
$lp3 = 0;
$id3 = 0;
foreach ($stack3 as $v3){
    $lp3++;
    if($lp3==3){
      break;
    }else{
      $id3++;
      echo 'Stack-3 => '.$v3.'<br>';      
    }
}
?>

Размер первого стека stack1 является динамическим и может изменяться время от времени.Я понятия не имею, чтобы заставить это работать без повторения цикла foreach здесь.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 24 апреля 2018

Не уверен, что это именно то, что вы имеете в виду, но он создаст переменные $ stack1 -> $ stack5 в виде массивов с двумя элементами в каждой.

Я использую array_chunk, чтобы разделить массив, а затем создать новый массив с ассоциативными ключами, которые я могу извлечь для разделения переменных массива.

$stack1 = array('a', 'b', 'c', 'd', 'e','f','g','h','i','j'); 

$stacks = array_chunk($stack1, 2);

Foreach($stacks as $key => $stack){
    $new['stack' . ($key+1)] = $stack;
}
Extract($new);

Var_dump($stack1, $stack2, $stack3, $stack4, $stack5);

https://3v4l.org/t7ug6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...