迭代多维数组php

时间:2016-08-09 16:10:31

标签: php arrays multidimensional-array

我是php的新手,我在joomla中有以下多维数组。

我有以下数组,例如使用print_r(因为它是动态的):

stdClass Object
(
    [pressrelease_title] => Array
        (
            [0] => جريدة الفجر
            [1] => جريدة الفجر
            [2] => جريدة الوطن
            [3] => جريدة أخبار اليوم
            [4] => جريدة الشروق
            [5] => صدى البلد
        )

    [pressrelease_url] => Array
        (
            [0] => url1
            [1] => url2
            [2] => url3
            [3] => url4
            [4] => url5
            [5] => url6
        )

    [pressrelease_desc] => Array
        (
            [0] => بالصور.. وزير المالية يطلق الإصدار السنوي الثاني لـ "موازنة المواطن"
            [1] => دميان: "موازنة المواطن" تفتح المجال لإشراك المواطنين في صياغة السياسات الاقتصادية
            [2] => وزير المالية يطلق الإصدار السنوي الثاني لـ"موازنة المواطن"
            [3] => بمشاركة ممثلين عن البنك الدولي و6 وزارات وخبراء المجتمع المدني.. الثلاثاء .. وزير المالية يطلق الإصدار السنوي الثاني لموازنة المواطن
            [4] => وزير المالية: إصدار صكوك إسلامية لتلبية احتياجات شريحة جديدة من المدخرين
            [5] => اليوم.. "المالية" تطلق إصدارها الثاني لموازنة المواطن
        )

)

下面是一个迭代新闻发布数组的代码。这个问题只显示了3个结果,而不是更多。

<?php
    //$press_releases= json_decode($params->get('repeated_press'),true);
    $press_release = json_decode($attribs->repeated_press);

    $press_n = count((array)$press_release);

    for ($x = 0; $x < $press_n ; $x++) {
        echo '<div class="press_item" id="press_item'.($x+1).'">';
        echo '<div class="title">'.$press_release->pressrelease_title[$x].'</div>';
        echo '<div class="url"><a target="_blank" href="'.$press_release->pressrelease_url[$x].'">'.$press_release->pressrelease_desc[$x].'</a></div>';
        echo '</div>
        ';
    }
?>

1 个答案:

答案 0 :(得分:0)

您希望计数是每个数组中元素的数量,而不是数组的数量。

更改

$press_n = count((array)$press_release);

$press_n = count($press_release->pressrelease_title);

第二行将计算$press_release的第一个成员中的元素(3个数组块中的第一个)