[英]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.