2017-03-22 82 views
0

只是要注意我不意味扭轉整個陣列,只有一個項目是在數組的開始也出現在數組的末尾請在陣列的第一項出現在最後一個項目

我有一個數組的例子,但我不知道如何讓我看起來一樣。

我想用座標創建一個多邊形,並且我找到了一個使用數組繪製多邊形的example on the net。下面是我發現from the site

$polygon = array("-50 30","50 70","100 50","80 10","110 -10","110 -30","-20 -50","-30 -40","10 -10","-10 10","-30 -20","-50 30"); 

條件是第一和最後一個數組必須是相同的陣列。他們的例子來自靜態數字。

在我的情況下,我有動態的數據庫座標列表,我希望它生成類似上面給出的例子。

這是我所嘗試過的,但它似乎並沒有工作。 我的代碼現在

$query_points = mysqli_query($link,"SELECT * FROM ec"); 
$row_points = mysqli_fetch_assoc($query_points); 

$query_lastpoint = mysqli_query($link,"SELECT * FROM ec" 
$row_lastpoint = mysqli_fetch_assoc($query_lastpoint); 

$longitude_last = $row_lastpoint['longitude']; 
$latitude_last = $row_lastpoint['latitude']; 
$polygon= array(); 
while ($row_points = mysqli_fetch_assoc($query_points)) 
{ 
    $longitude_xx = $row_points['longitude']; 
    $latitude_yy = $row_points['latitude']; 
    $xx_yy = ''.$longitude_xx.' '.$latitude_yy.''; 
    $polygon[] = $xx_yy; 

} 
$polygon[] = "$longitude_last $latitude_last"; 

它從源頭喜歡他們直接使用變量作爲$polygon而我是$polygon[];,我不能說$polygon = $polygon[];

的任何援助?

+0

你的代碼生成數組'$ polygon',所以沒有區別在這方面。 '$ polygon []'只是* append *的符號。那麼你唯一的問題就是如何將第一個元素添加爲最後一個?或者是什麼問題? – trincot

+0

問題是,當我使用我的代碼它不起作用。由於變量$ polygon在某個地方使用,因爲它來自http://assemblysys.com/php-point-in-polygon-algorithm/中提供的示例。但是我的是$ polygon [],如何保留變量$ polygon,條件爲 –

+0

不,你的不是'$ polygon []'。它也是'$ polygon'。這是什麼意思*不起作用*?哪些錯誤? – trincot

回答

4

您只需再添加它,如果它已經存在,它不會使differnce

$array[]= $array[0]; 

否則你可以做

if (end($array) != reset($array)) { //add the first element here 

http://php.net/manual/en/function.end.php

http://php.net/manual/en/function.reset.php

+0

最後我還想有變量$ array而不是$ array [],以便我可以在某處使用它。 –

+0

@krushiovida,你誤解了'[]'符號:它不是一個變量,它是'$ array'上的一個運算符,它是變量。 – trincot

+0

@trincot因此,我可以在使用$ array []附加項目後仍然可以使用變量$ array? –

相關問題