当有 6 个其他国家且所有国家都获得相同的“访问“英国”计划?”时,我的值 $viena_salis 只会显示最后一个值(在本例中为英国)。我尝试将 var contentString 移动到循环中的其他位置,希望结果能够改变,但似乎没有任何效果。此代码在谷歌地图上放置标记,其中包含每个国家/地区注册人数的数字,并且应根据用户 Angular 色的类型放置不同颜色的标记(仍在处理彩色标记部分)。
$indivitualios_salys
是国家/地区名称数组。
$google map 是包含世界所有国家/地区坐标的数组。
我不明白它出了什么问题,在我看来,它应该只是循环 js 并回显国家/地区名称,因为 if($viena_salis==$gm_salis[0])
可以正常工作。
如果有人对我做错了什么有任何想法,我们将不胜感激。
P.s 我对 php 和 js 还很陌生。
<?php $i=0;
foreach ($indivitualios_salys as $viena_salis) {
$i++;
foreach ($Google_maps as $gm_salis) {
if ($viena_salis==$gm_salis[0]) {
?>
var contentString = '<div id="content" >'+
'<div id= "siteNotice">'+
'</div>'+
'<div id="bodyContent">'+
'<p>Plan on visisting "<?php echo $viena_salis; ?>"?</p>'+
'<p>Check out our <a href="https://biz4good.co/about/">welcome guide</a> </p>'+
'</div>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString});
var <?php echo 'marker'.$i; ?> = new google.maps.Marker({
position: {lat: <?= $gm_salis[1]; ?>, lng: <?= $gm_salis[2]; ?>},
map: map,
icon: <?php
foreach ($remeju_id as $con_id){
foreach ($country_user_id as $user_id_country) {
if($con_id==$user_id_country){
echo 'image_green_blue,';
}
if($con_id!=$user_id_country){
echo 'image_green,';
}
else {
echo 'image_blue,';
}
}
}; ?>
label: { color: '#fff', fontWeight: 'bold', fontSize: '14px', text: '<?php echo $elementCount[$viena_salis]; ?>' }
});
<?php echo 'marker'.$i; ?>.addListener('click', function() {
infowindow.open(map, <?php echo 'marker'.$i; ?>);
});
<?php
}
}
};?>
}
编辑: $individualios_salys- 看起来像:
Array
(
[0] => Aruba
[1] => Lithuania
[2] => Bolivia
[3] => Ukraine
[4] => Bosnia and Herzegovina
[5] => Greece
[9] => United Kingdom
)
$google_maps 包含所有国家/地区,但简而言之,它看起来像:
Array
(
[0] => Array
(
[0] => Andorra
[1] => 42.546245
[2] => 1.601554
)
[1] => Array
(
[0] => United Arab Emirates
[1] => 23.424076
[2] => 53.847818
)
[2] => Array
(
[0] => Afghanistan
[1] => 33.93911
[2] => 67.709953
)
最佳答案
我简化了您的代码并准备了一小段代码,在我的代码中$viena_salis正在迭代数组的所有匹配值,您可以通过复制下面的代码来查看它并在控制台中查看它将会导致你
安道尔
阿富汗
$indivitualios_salys = array('Andorra','Lithuania','Afghanistan','Ukraine','Bosnia and Herzegovina','Greece','United Kingdom');
$Google_maps = array(
array('Andorra',42.546245,1.601554),
array('United Arab Emirates',42.546245,1.601554),
array('Afghanistan',42.546245,1.601554),
);
$i=0;
foreach ($indivitualios_salys as $viena_salis) {
$i++;
foreach ($Google_maps as $gm_salis) {
if ($viena_salis==$gm_salis[0]) {
?>
<script>
var viena_salis = '<?php echo $viena_salis ?>';
console.log(viena_salis);
</script>
<?php
}
}
};
?>
上面的代码已经过测试并且可以工作,
我为您提供了上述解决方案作为您陈述的答案, “我的值 $viena_salis 只显示最后一个值(在本例中为英国) ”,
关于javascript - PHP循环仅在js中取出最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59676801/