PHP数组限制?

时间:2016-08-22 18:25:14

标签: php

朋友我是php新手。我在玩数组。所以我无法使用数组解决一个登录。在这个程序中,我想显示数组限制。我有数据来自数据库。但我想显示限制数据(仅限10个帖子)。我知道MYSQL查询显示限制数据。但我正在尝试阵列。所以请帮助解决这个逻辑谢谢。

这是代码。

$reverse = array_reverse($showpost, true);

foreach ($reverse as $key=>$postvalue) {
    $latestpost = explode(',', $postvalue['postcategory']);

    if (in_array("3", $latestpost)) {
        // result here...

    }

}

我已保存此格式的类别(1,2,3,4,5,6)。这就是我使用explode()函数的原因。 我的数据库字段名称是(post_id,postname,postcategory,postdisc,)。

4 个答案:

答案 0 :(得分:1)

不确定我是否正确理解了问题,但我认为它可能与this link

有关
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

答案 1 :(得分:0)

您可以使用array_chunk()功能

代码:

<?php
$reverse = array_reverse($showpost, true);

foreach($reverse as $key=>$postvalue){
    $latestpost = explode(',', $postvalue['postcategory']);
    $chunks = array_chunk($latestpost, 3);
    print_r($chunks);
}
?>

答案 2 :(得分:0)

如果您只想显示10行,result here...是每个帖子的显示位置,那么这样的内容可能会有效:

$postsShown = 0;
$reverse = array_reverse($showpost, true);

foreach ($reverse as $key => $postvalue) {

    if ($postsShown >= 10) {
        break;
    }

    $latestpost = explode(',', $postvalue['postcategory']);

    if (in_array("3", $latestpost)) {

        // result here...

       $postsShown++;
   }
}

所有这一切都计算使用$postsShown变量显示的帖子数量,并在显示新帖子时递增。当此变量达到10(IE,显示10个帖子)时,将使用break命令终止循环。

答案 3 :(得分:0)

也许您可以使用会话变量来保存用户用于记录的少量尝试,并在服务器中对其进行验证。

使用此代码可以创建会话变量:

session_start();
$_SESSION['name_of_my_variable'] = 'value of my session variable';

例如,每次用户尝试登录时,您都可以在会话变量中增加计数器的值:

第一次需要创建会话变量时:

session_start();
$_SESSION['log_counter'] = 1;

然后下一次尝试递增计数器,如下所示:

session_start();
$log_counter = $_SESSION['log_counter'];
$log_counter++;
$_SESSION['log_counter'] = $log_counter;

检查用户是否已达到限制:

session_start();
if ($_SESSION['log_counter'] == 10)
{
    echo "Limit reached";
}

这是最终代码

// init session variables
session_start();

// Check if exist the session variable
if (isset($_SESSION['log_counter']))
{
    // Enter here if the session variable exist

    // check if the log_counter is equals to the limit
    if ($_SESSION['log_counter'] == 10)
    {
        echo "Limit reached";
    }else
    {
       // increase the counter
       $log_counter = $_SESSION['log_counter'];
       // this increate 1 more to the log_counter session variable
       $log_counter++;
       // here we save the new log_counter value
       $_SESSION['log_counter'] = $log_counter;
    }
}else
{
    // Enter here if not exist the session variable

    // this create the log_counter session variable
    $_SESSION['log_counter'] = 1;
}