我有一个2维数组,有30多个项目节点,格式如下。
$catalog= array(
array(
code => "ABC",
name => "Item name",
link => "domain.com/item121"
),
array(
code => "DEF",
name => "Another item name",
link => "domainB.com/item333"
)
);
我需要做以下事情:
我只想显示完整的5行而没有部分。所以我算上总项目:
$items= count($catalog);
然后我计算要显示的完整行数为5:
$showItems = floor($logosN / 5) * 5; // num or rows * cnt per row
我不知道怎么做其余的事。我能够输出项目而无需随机化
echo '<div class="first5">';
// 5 first items here
echo '</div>';
echo '<div class="restItems">';
// rest items need to go here
for ($x = 0; $x <= $showItems - 1; $x++) {
echo '
<div class="item">
<div class="item_'.$catalog[$x][code].'"></div>
</div>';
}
echo '</div>';
需要一些帮助。感谢。
答案 0 :(得分:0)
我查看了用户在shuffle
的PHP文档上发布的示例,并找到了此函数,如果我正确理解您的问题,那么 可以满足您的需求:
参考:http://www.php.net/manual/en/function.shuffle.php#93214
<?php
function twodshuffle($array)
{
// Get array length
$count = count($array);
// Create a range of indicies
$indi = range(0,$count-1);
// Randomize indicies array
shuffle($indi);
// Initialize new array
$newarray = array($count);
// Holds current index
$i = 0;
// Shuffle multidimensional array
foreach ($indi as $index)
{
$newarray[$i] = $array[$index];
$i++;
}
return $newarray;
}
?>
请注意,它仅适用于二维阵列 另外,请注意,它不会改变实际的内部数组元素,只会改变外部数组,如果你知道我的意思是 ,如果我知道你想要的话, ; )