PHP foreach关联数据


PHP foreach associate data

我的PHP不太好,我正在尝试为joomla构建一个小模块,目前我有以下代码:

<?php $a = array(1, 2, 3, 4); ?>
    <div class="bannercontainer">
        <ul>
<?php foreach($a as $v): ?>
    <li data-transition="fade" data-startalign="left,bottom" data-zoom="in" data-zoomfact="5" data-endalign="center,top" data-panduration="12" data-colortransition="4">
        <img alt="" src="images/slides/image1.jpg" data-thumb="images/thumbs/thumb1.jpg">
        <div class="creative_layer">
            <div class="clear"></div>
        </div>
    </li>
<?php endforeach; ?>
        </ul>
    </div>
</div>

基本上,数组中的每个数字都会为滑块生成一个带有图像等的列表项。。但是我如何将其他东西与它联系起来,以便它生成,但也取决于xml文件中的设置,例如,它还改变了<li data-transition="fade" data-startalign="left,bottom" data-zoom="in" data-zoomfact="5" data-endalign="center,top" data-panduration="12" data-colortransition="4">-这种缩放效果以及图像路径等。

非常感谢您的帮助。。谢谢

只需将更多信息放入传递给foreach的数组中,例如:

$banners = array(
    0 => array('color' => 'blue'),
    1 => array('color' => 'red', 'animation' => 'fade'),
    2 => array('color' => 'green', 'animation' => 'slide'),
);

然后你可以在前臂上使用它:

foreach($banners as $banner) {
    echo $banner['color'];
}

您需要预定义这些值,并将它们存储在您使用的数组中。不要直接打印出来。最好存储输出并在最后打印出来:

$a = array(
        array(
            'data-transition' => 'fade',
            'data-startalign' = > 'left,bottom',
            ...
            'data-thumb' => 'images/thumbs/thumb1.jpg'
        ),
        array(
            'data-transition' => 'no-fade',
            'data-startalign' = > 'top,bottom',
            ...
            'data-thumb' => 'images/thumbs/thumb2.jpg'
        )
        ...
    );
$output = '<div class="bannercontainer">
             <ul>';
foreach( $a as $v ) {
    $output .= '<li data-transition="'.$v['data-transition'].'" data-startalign="'.$v['data-startalign'].'" data-zoom="in" data-zoomfact="5" data-endalign="center,top" data-panduration="12" data-colortransition="4">
        <img alt="" src="'.$v['data-thumb'].'" data-thumb="'.$v['data-thumb'].'">
        <div class="creative_layer">
            <div class="clear"></div>
        </div>
    </li>';
}
$output .= '</ul>
    </div>';
echo $output;

基本上,你现在正在做的是创建一个4大小的循环,并打印出相同的东西。

如果设置保存在模块的.xml文件中,则可以使用$params->get('param_name');从xml中获取数据。