dongyinglan8707 2014-10-01 09:14
浏览 75
已采纳

Foreach通过多维数组嵌套

I have two arrays.I need iterate through this arrays and create new one.

My code looks like this:

<?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);

?>

From this code I got this result:

 $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)
  );

But, I expected next:

   $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)
  );

How I can achieve this results ?

  • 写回答

1条回答 默认 最新

  • duangan2307 2014-10-01 09:39
    关注

    Try using this -

    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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度