我试图像这样制作多个阵列:
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值一样增加。每个" etage"并且每个" opgang"都需要增加y值。
我已经尝试了很多功能,这就是我所拥有的代码:
$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)
}
}
}
}
}
}
答案 0 :(得分:0)
这个问题有点难以理解,但如果我理解,你几乎需要一个i x j矩阵,i
为opgange
而j
为etage
。如果我错了,请纠正我 - 如果不是,这应该可以帮到你 - 你只需要嵌套循环。
<?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
)
)
)
)
)
)