[英]Javascript Array from PHP Multidimensional Array
我有一个数组如下
array(
(int) 0 => array(
'Homeslider' => array(
'id' => '1',
'title' => null,
'display_photo' => '1402379775bdaebd329b69.jpg',
'order_no' => null,
'created' => '2014-06-10 05:56:15',
'modified' => '2014-06-10 05:56:15'
)
),
(int) 1 => array(
'Homeslider' => array(
'id' => '2',
'title' => null,
'display_photo' => '1402379784a426fe476711.jpg',
'order_no' => null,
'created' => '2014-06-10 05:56:24',
'modified' => '2014-06-10 05:56:24'
)
),
(int) 2 => array(
'Homeslider' => array(
'id' => '3',
'title' => null,
'display_photo' => '1402379793cb81f1a5bbf9.jpg',
'order_no' => null,
'created' => '2014-06-10 05:56:33',
'modified' => '2014-06-10 05:56:33'
)
)
)
我正在努力实现的目标
["img/default/slide/bg1.jpg","img/default/slide/bg2.jpg","img/default/slide/bg3.jpg"]
我尝试了什么?
var slider_container = [];
<?php foreach($sliders as $slide): ?>
slider_container[] = "img/sliders/<?php echo $slide['Homeslider']['display_photo'] ?>";
<?php endforeach; ?>
console.log(slider_container);
错误
JavaScript不支持PHP的array[] = ...
语法,但是您在这里也不需要它。
两种选择:
json_encode
: var slider_container =
<?php
$images = [];
foreach($sliders as $slide) {
$images[] = $slide['Homeslider']['display_photo'];
}
echo json_encode($images);
?>;
(我的PHP-fu很弱,很抱歉在PHP中出错。)
var slider_container = [
<?php foreach($sliders as $slide): ?>
"img/sliders/<?php echo $slide['Homeslider']['display_photo'] ?>",
<?php endforeach; ?>
""
];
--slider_container.length;
console.log(slider_container);
请注意,我必须在游戏中使用逗号,最后添加一个额外的条目,以便随后将其删除。 大多数现代浏览器只会忽略结尾的逗号,但是仍然有一些纠结,最后会留下一个undefined
条目,因此对于max compat,您可以考虑这样做。 (有关我博客上这篇文章中结尾逗号的更多信息 。)
我真的不喜欢将js和php混合使用,这很难看,编辑也不喜欢(缩进等)。
我会做类似的事情:
<?php
foreach($arr as $val) {
$filteredArr[] = "img/sliders/".$val['Homeslider']['display_photo'];
}
?>
<span id="arrayEl" style="display:none"><?=json_encode($filteredArr);?></span>
<script>
var slider_container = JSON.parse(document.getElementById("arrayEl").innerText);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.