2011-09-02 19 views
1

真的與這個掙扎:如果在數組中?

我有一個現有的foreach,包含一個if循環尋找特定的值。但我也有一個數組包含的值,如果找到應該採取與具體值相同的行動:

在這裏我循環,當值介於5和9之間時,我將$ datacolvalue的值並將其添加到另一個數組作爲整數舍入到小數點後兩位。

否則,將其作爲字符串添加,不改變。

$data_row = array(); 
$count = 1; 
foreach ($row->COLUMN as $datacolvalue){ 

    if($count > 4 && $count < 10) 
     $data_row[] = round((float)$datacolvalue, 2); 
    else 
     $data_row[] = (string)$datacolvalue; 

     $count++; 
} 

我想要做什麼,實在是做同樣的事情$data_row[] = round((float)$datacolvalue, 2);如果$ count的值是一個名爲$ array_to_round它看起來像這樣一個靜態數組(值每個PHP運行時是不同的:

陣列(12,34,56,78);?

我雖然有關添加一個foreach的「其他」條件裏面,但我不能讓我的頭圍繞它是一​​個用於/時/循環答案

簡而言之,對於每個$ datacolvalue,如果$ count是(> 4)和( < 10)OR存在於數組中的$ array_to_round數組中,如int和round,否則將其放置爲一個字符串。

+0

[php.net/in array](http://php.net/in+array)。 – netcoder

回答

4

使用in_array檢查,如果其他數組中存在的價值,然後根據需要添加它,

我也將存儲舍入值,如果你打算使用它作爲檢查和制定者。