PHP 数组中的数组 - DXF 脚本
PHP array in array - DXF script
我找到了一个 php 脚本来根据多边形坐标编写 DXF 文件。 IT 使用此代码(对于多边形)处理测试文件:
$d->append(new DxfPolyLine(array('points'=>array(array(1, 1),
array(20, 10),
array(20, 20),
array(1, 15)),
'lineType'=>'DASHED',
// 'layer' => 'DXFWRITER',
'flag' => 0
//'width' => 1,
//'color'=>1
)
));
DXF文件结果是这样的:
VERTEX
8
0
6
DASHED
10
20.000
20
20.000
0
VERTEX
8
0
6
DASHED
10
1.000
20
15.000
0
折线内有很多顶点。
现在我想插入我自己的坐标。我有坐标,但如何在该数组中写入一个数组?
我有这个:$g=array_merge($g,array(array($coord[$z]*3.527785, $coord[$z+1]*3.527785)));
使用此代码,结果是:
Array ( [0] => Array ( [0] => -133.92170714209 [1] => -41.834100838885 ) [1] => Array ( [0] => -135.19600658422 [1] => -44.558002415365 ) [2] => Array ( [0] => -173.40700872797 [1] => -25.465001344078 ) [3] => Array ( [0] => -211.44500829533 [1] => -6.4740001788315 ) [4] => Array ( [0] => -209.93490817601 [1] => -3.255100166471 ) [5] =>
Array ( [0] => -190.0770099388 [1] => -13.202000524885 ) [6] => Array ( [0] => -171.92300716209 [1] => -22.296000898041 ) [7] => Array ( [0] => -172.13500940166 [1] => -22.749000947663 ) [8] => Array ( [0] => -171.12900859213 [1] => -23.251001225378 ) [9] => Array ( [0] => -152.49300807866 [1] => -32.559001622754 ) [10] => Array ( [0] => -133.92170714209 [1] => -41.834100838885 ) )
到目前为止一切顺利。它尊重示例中的格式。但在 DXF 文件中只写入 1(来自数组编号)。
如果我更改
中的代码
$d->append(new DxfPolyLine(array('points'=>array($g[3]),
with array[3] - 它确实将坐标写入 DXF 文件。有没有办法让 php 从数组中读取所有数组?我试过 foreach 但它不起作用。 PHP 给出了没有关闭 ) 的错误。
源代码在这里:
https://github.com/digitalfotografen/DXFwriter
使用 $g[3] 我在 DXF 文件中有来自数组 [3] 的坐标:
VERTEX
8
0
6
CONTINUOUS
10
-211.445
20
-6.474
0
如果我简单地输入 $g 我有:
VERTEX
8
0
6
CONTINUOUS
10
1.000
20
1.000
30
1.000
40
1.000
50
1.000
60
1.000
70
1.000
您的格式有点乱,但是查看转储的数组数据我看到一个数组,其值是数组,每个数组有 2 个浮点值。请注意,Array[0] 和 Array[10] 具有相同的值,这可能是也可能不是 lib 的问题。
此外,$d->append...
逻辑中的星号是什么?
Is there a way to make php to read all arrays from an array?
可以,但是 PHP 会根据键和值的性质施加一些限制。有关 PHP 如何处理数组的更多具体信息,请参阅 http://php.net/manual/en/language.types.array.php。
I've tried with foreach but it doesn't work. PHP gives an error for not closing the ).
你能post 失败的代码吗?您描述的只是格式/语法错误,与数据本身无关。
我根据您的转储重新创建了 $g
数组。这会输出所需的 DXF 文件吗?
$g = [[-133.92170714209, -41.834100838885],
[-135.19600658422, -44.558002415365],
[-173.40700872797, -25.465001344078],
[-211.44500829533, -6.4740001788315],
[-209.93490817601, -3.255100166471 ],
[-190.0770099388 , -13.202000524885],
[-171.92300716209, -22.296000898041],
[-172.13500940166, -22.749000947663],
[-171.12900859213, -23.251001225378],
[-152.49300807866, -32.559001622754],
[-133.92170714209, -41.834100838885]
];
$d->append(new DxfPolyLine(['points' => $g]));
关于构建数组,你可以这样做:
for ($z = 0; $z < $numar; $z+=2) {
$g[] = [$coord[$z]*3.527785,$coord[$z+1]*3.527785];
}
我找到了一个 php 脚本来根据多边形坐标编写 DXF 文件。 IT 使用此代码(对于多边形)处理测试文件:
$d->append(new DxfPolyLine(array('points'=>array(array(1, 1),
array(20, 10),
array(20, 20),
array(1, 15)),
'lineType'=>'DASHED',
// 'layer' => 'DXFWRITER',
'flag' => 0
//'width' => 1,
//'color'=>1
)
));
DXF文件结果是这样的:
VERTEX
8
0
6
DASHED
10
20.000
20
20.000
0
VERTEX
8
0
6
DASHED
10
1.000
20
15.000
0
折线内有很多顶点。
现在我想插入我自己的坐标。我有坐标,但如何在该数组中写入一个数组?
我有这个:$g=array_merge($g,array(array($coord[$z]*3.527785, $coord[$z+1]*3.527785)));
使用此代码,结果是:
Array ( [0] => Array ( [0] => -133.92170714209 [1] => -41.834100838885 ) [1] => Array ( [0] => -135.19600658422 [1] => -44.558002415365 ) [2] => Array ( [0] => -173.40700872797 [1] => -25.465001344078 ) [3] => Array ( [0] => -211.44500829533 [1] => -6.4740001788315 ) [4] => Array ( [0] => -209.93490817601 [1] => -3.255100166471 ) [5] =>
Array ( [0] => -190.0770099388 [1] => -13.202000524885 ) [6] => Array ( [0] => -171.92300716209 [1] => -22.296000898041 ) [7] => Array ( [0] => -172.13500940166 [1] => -22.749000947663 ) [8] => Array ( [0] => -171.12900859213 [1] => -23.251001225378 ) [9] => Array ( [0] => -152.49300807866 [1] => -32.559001622754 ) [10] => Array ( [0] => -133.92170714209 [1] => -41.834100838885 ) )
到目前为止一切顺利。它尊重示例中的格式。但在 DXF 文件中只写入 1(来自数组编号)。 如果我更改
中的代码$d->append(new DxfPolyLine(array('points'=>array($g[3]),
with array[3] - 它确实将坐标写入 DXF 文件。有没有办法让 php 从数组中读取所有数组?我试过 foreach 但它不起作用。 PHP 给出了没有关闭 ) 的错误。
源代码在这里:
https://github.com/digitalfotografen/DXFwriter
使用 $g[3] 我在 DXF 文件中有来自数组 [3] 的坐标:
VERTEX
8
0
6
CONTINUOUS
10
-211.445
20
-6.474
0
如果我简单地输入 $g 我有:
VERTEX
8
0
6
CONTINUOUS
10
1.000
20
1.000
30
1.000
40
1.000
50
1.000
60
1.000
70
1.000
您的格式有点乱,但是查看转储的数组数据我看到一个数组,其值是数组,每个数组有 2 个浮点值。请注意,Array[0] 和 Array[10] 具有相同的值,这可能是也可能不是 lib 的问题。
此外,$d->append...
逻辑中的星号是什么?
Is there a way to make php to read all arrays from an array?
可以,但是 PHP 会根据键和值的性质施加一些限制。有关 PHP 如何处理数组的更多具体信息,请参阅 http://php.net/manual/en/language.types.array.php。
I've tried with foreach but it doesn't work. PHP gives an error for not closing the ).
你能post 失败的代码吗?您描述的只是格式/语法错误,与数据本身无关。
我根据您的转储重新创建了 $g
数组。这会输出所需的 DXF 文件吗?
$g = [[-133.92170714209, -41.834100838885],
[-135.19600658422, -44.558002415365],
[-173.40700872797, -25.465001344078],
[-211.44500829533, -6.4740001788315],
[-209.93490817601, -3.255100166471 ],
[-190.0770099388 , -13.202000524885],
[-171.92300716209, -22.296000898041],
[-172.13500940166, -22.749000947663],
[-171.12900859213, -23.251001225378],
[-152.49300807866, -32.559001622754],
[-133.92170714209, -41.834100838885]
];
$d->append(new DxfPolyLine(['points' => $g]));
关于构建数组,你可以这样做:
for ($z = 0; $z < $numar; $z+=2) {
$g[] = [$coord[$z]*3.527785,$coord[$z+1]*3.527785];
}