[英]Generating a javascript array in php with “Foreach” Loop
所以我在php中使用for
循环生成javascript对象数组。 我的代码看起来有点像这样:
<script type="text/javascript">
var items = [
<?php foreach($items as $item): ?>
{
"title" : "<?php echo $item->title ?>",
"image" : "<?php echo $item->getImage()?>",
},
<?php endforeach ?>
];
</script>
这段代码不起作用,因为我的javascript数组末尾有一个额外的逗号。 是否有一种优雅的方式来处理分隔javascript对象的逗号?
你应该使用json_encode()
。
<?php
$jsItems = array();
foreach($items as $item) {
$jsItems[] = array(
'title' => $item->title,
'image' => $item->getImage()
);
}
echo 'var items = '.json_encode($jsItems).';';
?>
ThiefMaster得到了它,但扩展答案:
$arr = array()
foreach ($items as $item) {
$arr[] = array('title' => $item->title, 'image' => $item->getImage());
}
echo json_encode($arr);
对于将来,如果再次遇到这种类型的循环问题(无论它是否与json相关),您可以使用布尔值来检测是否需要逗号:
<?php $firstTime = true ?>
<?php foreach($items as $item): ?>
<?php
if (!$firstTime):
echo ', ';
else:
$firstTime = false;
endif;
?>
{
"title" : "<?php echo $item->title ?>",
"image" : "<?php echo $item->getImage()?>",
}
<?php endforeach ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.