Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过多维数组嵌套的Foreach_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 通过多维数组嵌套的Foreach

Php 通过多维数组嵌套的Foreach,php,arrays,multidimensional-array,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

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

我的代码如下所示:

<?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,3,5,5,5),
      array(3,3,5,5,7)
  );
我如何才能达到这一效果?

尝试使用以下方法-

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);
foreach($i=>$index作为索引){
foreach($l=>$val的行){
如果($val[$i]==0){
$simbols[$l][$i]=$index-1;
}else if($val[$i]==2){
$simbols[$l][$i]=$index+1;
}否则{
$simbols[$l][$i]=$index;
}
}
}
回声“;打印(simbols);

请详细说明“什么”和“为什么”,这正是我想要实现的目标!
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);