我有一个foreach循环,它遍历帖子并执行操作(例如为每个设置$distance
变量)。通过条件,它需要做两件事,它们独立工作,但我不能让它们一起工作。
$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
}
}
答案 0 :(得分:4)
使用单个多维数组存储值:
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"]);
}
答案 1 :(得分:0)
距离应该包含在值
中
那你为什么不这样做呢?在将$distance
放入$value
数组之前,将$value
放入$results
?
$value['distance'] = $distance;
$results[] = $value;