[英]Foreach nested through 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)
);
我怎样才能达到这个结果?
尝试使用-
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.