2015-01-05 3 views
-3

я есть следующий кодРНР приращение с использованием 0,01

$p1 = array(
    'x' => 0, 
    'y' => 0 
); 

$p2 = array(
    'x' => 10, 
    'y' => 10 
); 

// Work out distances 
$pxd = $p2['x'] - $p1['x']; 
$pyd = $p2['y'] - $p1['y']; 

// Find out steps 
for ($x = $p1['x']; $x < $p2['x']; ++ $x) { 
    for ($y = $p1['y']; $y < $p2['y']; ++ $y) { 
     $coords['gps'] = array(
      'x' => $x, 
      'y' => $y 
     ); 
echo $coords['gps']['x'] .', '.$coords['gps']['y'] . '</br>'; 
     } 

} 

Вышеуказанные приращения от 1 во всех координатах. Я хотел бы увеличить на 0.001 вместо 1 на диапазон от 0,0 до 10,10, например. 0,001, 0,02, 0,03, 0,04, и т.д. ...

Как это сделать, пожалуйста, как я застрял

+4

'++ $ x' должен стать' $ х + = 0.001', то же самое для 'y'. – moonwave99

ответ

0

Попробуйте

// Find out steps 
for ($x = $p1['x']; $x < $p2['x']; $x += 0.001) { 
    for ($y = $p1['y']; $y < $p2['y']; $y += 0.001) { 
     $coords['gps'] = array(
      'x' => $x, 
      'y' => $y 
     ); 
     echo $coords['gps']['x'] .', '.$coords['gps']['y'] . '</br>'; 
    } 
} 
+0

Привет, спасибо, проблема в том, что через некоторое время она увеличивается на более десятичные точки, например. 0.022, 9.0010000000005 - Я бы хотел ограничить это до 4 знаков после запятой – user1974470

0

Изменить приращение шага от 1 до 0,001:

for ($x = $p1['x']; $x < $p2['x']; $x += 0.001) { 
    for ($y = $p1['y']; $y < $p2['y']; $y += 0.001) { 
     // do your stuff here 
0

Это должно работать для вас:

(Но это займет довольно долго с этим интервалом)

<?php 

    $p1 = array(
     'x' => 0, 
     'y' => 0 
    ); 

    $p2 = array(
     'x' => 10, 
     'y' => 10 
    ); 

    $interval = 0.001; 


    for ($count = $p1['x']; $count < $p2['x']; $count+= $interval) { 
     for ($innerCount = $p1['y']; $innerCount < $p2['y']; $innerCount+= $interval) { 
      $coords['gps']['x'] = $count; 
      $coords['gps']['y'] = $innerCount; 
      echo sprintf("%6.3f", $coords['gps']['x']) . ", " . sprintf("%6.3f", $coords['gps']['y']) . "</br>"; 
     } 

    } 

?> 

Выход:

0.000, 0.000 
0.000, 0.001 
0.000, 0.002 
0.000, 0.003 
0.000, 0.004 
0.000, 0.005 
0.000, 0.006 
0.000, 0.007 
0.000, 0.008 
0.000, 0.009 
0.000, 0.010 
//... 
Смежные вопросы