2013-02-07 47 views
0

我的PHP心不是到大我试图建立的Joomla一个小模块,此刻我有这样的代码:PHP的foreach关联数据

<?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> 

基本上在阵列中的foreach号生成一个列表项awith图像等滑块..但我怎么会联系其他事情与它,所以它产生,但也取决于在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"> - 这种缩放效果,也是图像路径等

任何帮助非常感谢..谢谢。

回答

1

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

$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尺寸的循环,打印出同样的事情。

3

只是把更多的信息,你传递给foreach数组,如:

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

然后你就可以在你的foreach使用它:

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

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