增加数组中的值


increase value in array

我试着这样做:

array(1) {
  ["Test"]=>
  array(1) {
    [0]=>
    array(3) {
      ["opgang1"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
      }
      ["opgang2"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
      }
      ["opgang3"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(0)
            ["y2"]=>
            int(0)
          }
        }
      }
    }
  }
}

我的问题是我需要y值像x值一样增加。X值为每个"etage"增加,y值为每个"opgang"增加。

我已经尝试了很多来完成,这是我得到的代码:

$projektNavn = "Test";
$opgange = 3;
$etage = 2;
$temp = array();
$dele = array(
    'varm' => array('x1' => 0, 'x2' => 0, 'y1' => 0, 'y2' => 0)
//    'kold' => array('x1' => '200', 'x2' => '200', 'y1' => '200', 'y2' => '200')
);
for ($i = $etage; $i >= 1; $i--) {
    $varmeX1 = $dele['varm']['x1'] + 50;
    $varmeX2 = $dele['varm']['x2'] + 150;
    $dele['varm']['x1'] = $varmeX1;
    $dele['varm']['x2'] = $varmeX2;
    $etag['etage' . $i] = $dele;
}
for ($j = 1; $j <= $opgange; $j++) {
    $varmeY1 = $dele['varm']['y1'] + 100;
    $varmeY2 = $dele['varm']['y2'] + 200;
    $dele['varm']['y1'] = $varmeY1;
    $dele['varm']['y2'] = $varmeY2;
//        $temp = $dele;
    $opgang['opgang' . $j] = $etag;
}
$projekt = array(
    $projektNavn => array(
        $opgang
    )
);
echo "<pre>";
var_dump($projekt);
echo "</pre><br>";

我知道$varmeY1$varmeY2没有被添加到$etag中,因此是0,我尽我所知,所以希望你们中的一些人可以帮助我:)

最终结果需要为:

array(1) {
  ["Test"]=>
  array(1) {
    [0]=>
    array(3) {
      ["opgang1"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(100)
            ["y2"]=>
            int(200)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(100)
            ["y2"]=>
            int(200)
          }
        }
      }
      ["opgang2"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(200)
            ["y2"]=>
            int(400)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(200)
            ["y2"]=>
            int(400)
          }
        }
      }
      ["opgang3"]=>
      array(2) {
        ["etage2"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(50)
            ["x2"]=>
            int(150)
            ["y1"]=>
            int(300)
            ["y2"]=>
            int(600)
          }
        }
        ["etage1"]=>
        array(1) {
          ["varm"]=>
          array(4) {
            ["x1"]=>
            int(100)
            ["x2"]=>
            int(300)
            ["y1"]=>
            int(300)
            ["y2"]=>
            int(600)
          }
        }
      }
    }
  }
}

这个问题有点难以理解,但如果我理解的话,您几乎想要一个I x j矩阵,iopgange, jetage。如果我错了,请纠正我-如果没有,这应该得到你的大部分方式-你只需要嵌套循环。

<?php
$projektNavn = "Test";
$opgange     = 3;
$etage       = 2;
$dele = [
    'varm' => ['x1' => 0, 'x2' => 0, 'y1' => 0, 'y2' => 0]
//    'kold' => array('x1' => '200', 'x2' => '200', 'y1' => '200', 'y2' => '200')
];
$data = [];
$temp = $dele;
for ($i = 1; $i <= $opgange; $i++)
{
    if (!isset($data['opgang' . $i])) {
        $data['opgang' . $i] = [];
    }
    $temp['varm']['y1'] += 100;
    $temp['varm']['y2'] += 200;
    $prev = null;
    for ($j = 1; $j <= $etage; $j++)
    {
        $data['opgang' . $i]['etage' . $j] = (null !== $prev) ? $prev : $dele;
        $data['opgang' . $i]['etage' . $j]['varm']['x1'] += 50;
        $data['opgang' . $i]['etage' . $j]['varm']['x2'] += 150;
        $data['opgang' . $i]['etage' . $j]['varm']['y1'] = $temp['varm']['y1'];
        $data['opgang' . $i]['etage' . $j]['varm']['y2'] = $temp['varm']['y2'];
        $prev = $data['opgang' . $i]['etage' . $j];
    }
}
unset($temp);
$projekt = [
    $projektNavn => [
        $data
    ]
];
print_r($projekt);

以上输出如下:

Array
(
    [Test] => Array
        (
            [0] => Array
                (
                    [opgang1] => Array
                        (
                            [etage1] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 50
                                            [x2] => 150
                                            [y1] => 100
                                            [y2] => 200
                                        )
                                )
                            [etage2] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 100
                                            [x2] => 300
                                            [y1] => 100
                                            [y2] => 200
                                        )
                                )
                        )
                    [opgang2] => Array
                        (
                            [etage1] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 50
                                            [x2] => 150
                                            [y1] => 200
                                            [y2] => 400
                                        )
                                )
                            [etage2] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 100
                                            [x2] => 300
                                            [y1] => 200
                                            [y2] => 400
                                        )
                                )
                        )
                    [opgang3] => Array
                        (
                            [etage1] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 50
                                            [x2] => 150
                                            [y1] => 300
                                            [y2] => 600
                                        )
                                )
                            [etage2] => Array
                                (
                                    [varm] => Array
                                        (
                                            [x1] => 100
                                            [x2] => 300
                                            [y1] => 300
                                            [y2] => 600
                                        )
                                )
                        )
                )
        )
)