PHP foreach嵌套循环创建了大量的字符串

时间:2017-07-11 17:58:48

标签: javascript php arrays loops foreach

我想循环使用2个数组并使用console.log()函数显示输出。

$fermos = array(1, 2, 5, 10, 15, 20, 25);
$gyvuliu_tipai = array(1, 1, 2, 3, 4, 5, 6);

foreach ($gyvuliu_tipai as $value) {
    foreach ($fermos as $value2) {
    switch ($value) {
        case 1:
            $ferma = '/produkcija/';
            break;
        case 2:
            $ferma = '/kiaulide/';
            break;
        case 3:
            $ferma = '/avide/';
            break;
        case 4:
            $ferma = '/karvide/';
            break;
        case 5:
            $ferma = '/lamu-ferma/';
            break;
        case 6:
            $ferma = '/drambliu-ferma/';
            break;
    } ?>
    <script>console.log('<?php echo $ferma . $value2; ?>');</script>    
<?php } } ?>

预期输出为:

/produkcija/1
/produkcija/2
/kiaulide/5
/avide/10
/karvide/15
/lamu-ferma/20
/drambliu-ferma/25

但不知何故,它输出了这个: enter image description here

谁能告诉我这里发生了什么?任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:2)

您不想要嵌套循环...使用$fermos循环的索引来获取交换机的$gyvuliu_tipai数组的关联值

 foreach ($fermos as $index => $value2) {
    switch ($gyvuliu_tipai[$index]) {
      ....
    }
 }

或者在没有开关的情况下使其更简单:

$gyvuliu_tipai= array('produkcija','kiaulide','avide', 'karvide','lamu-ferma','drambliu-ferma');

foreach ($fermos as $index => $value2) {
   $ferma = '/' . $gyvuliu_tipai[$index] . '/';
   ...
}