簡體   English   中英

PHP多維數組中的Javascript數組

[英]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[] = ...語法,但是您在這里也不需要它。

兩種選擇:

用您想要的PHP創建一個數組,然后創建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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM