多个类别的投资组合

时间:2015-06-02 12:56:00

标签: php html

我想制作一个包含多个类别的项目的组合。 这是我的解决方案。

category1.php是5个不同类别页面之一...

<li ng-model="variable.{{s_price}}"><p><span class="voilet">Service Price :</span> ${{s_price}}</p></li>

category-overview.php:

<?php
$pageLabel = 'category1';
include 'category-overview.php';
?>

我重复每个类别的if语句。

最后使用数组multicats.php将项目排序为类别......

<?php

include 'multicats.php';

if ($pageLabel == 'category1') {
for ($i = 0; $i < count($category1); $i++) { ?>
<a href="<?php echo 'prjcts/' . $category1[$i] . '.php'?>"><img src="<?php echo 'thmbs/thumb-' . $category1[$i] . '.png';?>"/></a><?php
}
}
?>

它工作正常,但我不知道如何在数组中显示项目的所有大拇指并在index.php页面上链接到它们,因为回显所有数组中的所有值都是重复的。 / p>

有更好,更优雅的解决方案吗? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用多维数组:

<?php

//this is arbitrary

$cats['category1'] = array('prjct1', 'prjct2', 'prjct5', 'prjct8', 'prjct10',    'prjct11');
$cats['category2'] = array('prjct1', 'prjct5', 'prjct8', 'prjct9', 'prjct11',    'prjct10');
$cats['category3'] = array('prjct1', 'prjct4', 'prjct2', 'prjct9', 'prjct11', 'prjct5');
$cats['category4'] = array('prjct3', 'prjct7', 'prjct8', 'prjct9', 'prjct4', 'prjct');
$cats['category5'] = array('prjct5', 'prjct6', 'prjct3', 'prjct7', 'prjct9', 'prjct4');
?>

和:     

include 'multicats.php';

if (isset($cats[$pageLabel])) {
$cat = $cats[$pageLabel];
for ($i = 0; $i < count($cat); $i++) { ?>
<a href="<?php echo 'prjcts/' . $cat[$i] . '.php'?>"><img src="   <?php echo 'thmbs/thumb-' . $cat[$i] . '.png';?>"/></a><?php
}
}
?>

答案 1 :(得分:0)

当然,使用array_map将每个元素渲染到多维数组顶部的锚标记中(因此您不必为每个类别提供许多不同的变量)

$categories = array(
  'category1' => array('prjct1', 'prjct2', 'prjct5', 'prjct8', 'prjct10', 'prjct11'),
  'category2' => array('prjct1', 'prjct5', 'prjct8', 'prjct9', 'prjct11', 'prjct10'),
  'category3' => array('prjct1', 'prjct4', 'prjct2', 'prjct9', 'prjct11', 'prjct5'),
  'category4' => array('prjct3', 'prjct7', 'prjct8', 'prjct9', 'prjct4', 'prjct'),
  'category5' => array('prjct5', 'prjct6', 'prjct3', 'prjct7', 'prjct9', 'prjct4')
 );

function arrayToLinks($a) {
   $return = array();
   foreach($a as $link) {
     $return[] = "<a href='prjcts/". $link .".php'><img src='thmbs/thumb-". $link .".png'>". $link ."</a>";
   }
   return implode(PHP_EOL, $return);
}

echo implode(PHP_EOL, array_map('arrayToLinks', $category1));

https://eval.in/374334