Foreach通过多维数组嵌套

时间:2014-10-01 09:14:17

标签: php arrays multidimensional-array

我有两个数组。我需要遍历这个数组并创建一个新数组。

我的代码如下所示:

<?php

$lines = array(
array(0,0,0,0,0),
array(2,2,2,2,2),
array(0,1,2,1,0),
array(2,1,2,1,2)

);

$indexes = array(2,3,4,5,6);

foreach($lines as $l => $line) {

foreach($line as $d => $val) {
    foreach($indexes as $i => $index) {
       if($val == 0) {
          $simbols[$l][$i] = $index - 1;
       } else if ($val == 2) {
          $simbols[$l][$i] = $index + 1;
       } else {
          $simbols[$l][$i] = $index;
      }
   }
}
}
var_dump($simbols);

?>

从这段代码我得到了这个结果:

 $simbols = array(
      array(1,2,3,4,5),
      array(3,4,5,6,7),
      array(1,2,3,4,5),
      array(3,4,5,6,7)
  );

但是,我期待下一次:

   $simbols = array(
      array(1,2,3,4,5),
      array(3,4,5,6,7),
      array(1,3,5,5,5),
      array(3,3,5,5,7)
  );

我如何才能取得这个成果?

1 个答案:

答案 0 :(得分:5)

尝试使用此 -

foreach($indexes as $i=>$index) {
    foreach($lines as $l=>$val) {
        if($val[$i] == 0) {
            $simbols[$l][$i] = $index - 1;
        } else if ($val[$i] == 2) {
            $simbols[$l][$i] = $index + 1;
        } else {
            $simbols[$l][$i] = $index;
        }
    }
}

echo "<pre>";print_r($simbols);