2015-07-04 102 views
0

我有一個foreach循環遍歷帖子並執行操作(例如爲每個設置一個$distance變量)。通過有條件的,它需要做兩件事,它們獨立工作,但我不能讓他們一起工作。從foreach循環問題添加到多維數組

$results[] = $value;作品的,因爲它本身增加了陣列($value

$results['distance'] = $distance;作品但我需要包括$value陣列。

如果我把它們都放進去,它的結果是應該有兩倍的數組。距離應該包含在該值中。如果我做array_push它也可以,但我需要指定密鑰。

foreach ($posts as $key => $value) { 
    $loop->the_post(); 
    $result_lat = get_post_meta($value->ID, 'latitude', true); 
    $result_long = get_post_meta($value->ID, 'longitude', true); 
    $distance = round(calc_distance($input_lat, $input_lng, $result_lat, $result_long, "M")); 

    // add item to results if within distance 
    if ($distance < $_GET['within']) { 
    $results[] = $value; 
    $results['distance'] = $distance; // add distance to array 
    } 
} 

回答

2

使用單一多維數組存儲值:

foreach ($posts as $key => $value) { 
    #.. 
    $results[$key]["values"] = $value; 
    $results[$key]["distance"] = $distance; 
} 
#show first row 
print_r(array_values($results)[0]); 
#iterate 
foreach ($results as $r_key => $r_value) { 
    print_r($r_value["distance"]); 
} 
+0

謝謝,這個工作 –

0

距離應該被包含在價值

好,那麼爲什麼你不只是做正是 - 把$distance$value,你把$value$results陣列之前?

$value['distance'] = $distance; 
$results[] = $value; 
+0

謝謝,我看到的邏輯,但是這個代碼打破了網頁 –