как использовать один массив два раза в массиве php? - PullRequest
1 голос
/ 17 октября 2019
$a = array('a','b','c','d','e','f');
$b = array('1','2');
$count = 0;
$d = 0 ;
$input = array('ina', 'inb','inc');
foreach ($a as $key => $v) {
$count++;
echo $v;
echo $input[$key];
if ($count%3 == 0){
echo $b[$d++];
reset($input);  
}
}

Я хочу вот такой вывод

1
a-ina
b-inb
c-inc
2
d-ina
e-inb
f-inc

На самом деле я хочу $input два раза в цикле foreach. $a имеют 6 предметов $input имеют 3 предмета и $b имеют 2 предмета. Мне нужно

Ответы [ 2 ]

2 голосов
/ 17 октября 2019

Чтобы сделать его более применимым, Демо

$a = array('a','b','c','d','e','f');
$input = array('ina', 'inb','inc');
$loop = 1;
$input_length = count($input);   // TODO process the length with 0 case.
foreach($a as $index => $value){
    if(!($i = $index % $input_length)){
        echo $loop . PHP_EOL;
        $loop++;
    }
    echo $value . "_" . $input[$i] . PHP_EOL;
}
1 голос
/ 17 октября 2019

У вас есть несколько переменных, которые вам не нужны, поскольку они могут быть получены из значения $key из $a. Чтобы получить желаемый вывод, вы можете сделать следующее:

$a = array('a','b','c','d','e','f');
$b = array('1','2');
$input = array('ina', 'inb','inc');
$len = count($input);
foreach ($a as $key => $v) {
    $idx = $key % $len;
    if ($idx == 0){
        echo $b[floor($key/3)] . PHP_EOL;
    }
    echo $v . "-";
    echo $input[$idx] . PHP_EOL;
}

Вывод:

1
a-ina
b-inb
c-inc
2
d-ina
e-inb
f-inc

Демонстрация на 3v4l.org

...