如何来回遍历数组

时间:2015-02-05 07:15:52

标签: php arrays

我有一个像这样的数组

$steps = explode("[;;]",$str);

所以$ steps保存了我必须用来在PHP中显示步骤/步骤过程的值。

数组看起来像这样

$steps = array('corredores' , 'something' , 'something'...and so one );

我正在尝试根据数组中保存的值显示表单。我可以使用一些验证继续前进但是我在移动到数组中的先前名称时遇到了麻烦, 第一步,我正在做这样的事情

$steps = explode("[;;]",$_POST['str']);
$x = explode("=",$steps[0]);
$pais1 = $_POST['pais'];
$cnt=0;
    switch($steps[0]){
        case 'categorias' :
        include  'obj/categorias.php';
                    //$step='categorias';
                    break;
        case 'corredores':
        include 'obj/corredores.php';
                    //$step='corredores';
                    break;
        case 'monedas':
        include 'obj/monedas.php';
                    //$step='monedas';
                    break;
        case 'location':
        include 'obj/location.php';
                    //$step='location';
                    break;
        default:
        break;  
    }

//这里我试图匹配我将在每个步骤中保存在此帖子值中的数组中的下一个值

    if(isset($_POST['next1']) &&$_POST['method'] != "fase1")
{
$cnt =$_POST['cnt'];
$cnt++;
$array_var = unserialize(base64_decode($_POST["next1"]));
$steps = $array_var;
$pais1 = $_POST['pais'];

    $x = explode("=",$array_var[$cnt]);
include  'obj/'.trim($x[0]).'.php';
                //$step='categorias';   
}

所以,当我点击每个文件的下一个按钮时,它会转到数组中的下一个文件,但是现在我需要在上一个按钮中添加类似的功能,以便它返回

每个文件的HTML内容都有以下结构

   <form method="post" action="./index.php" name="form_name">
    <table><tr><th>Some Name</td></tr>
    <tr><td><input type="submit" value="previous"></td><td><input type="submit" value="next"></td></tr></table>
<input type="hidden" name="next1" value="<?php print base64_encode(serialize($steps))  ?>">
<input type="hidden" name="pais" value="<?php echo $pais1?>"/>
<input type="hidden" id="cnt" name="cnt" value="<?php echo $cnt ?>" />
    </form>

任何人都可以给我一些建议吗

先谢谢

2 个答案:

答案 0 :(得分:0)

如果我没有错误地阅读您的代码,那么您已经将next1cnt中存储的所有对象数组作为当前计数器。基本上,您需要做的是检测用户是否按下了下一个或上一个按钮

<input type="sumbit" name="next" value="Next">
<input type="submit" name="previous" value="Previous">

表单可以有多个提交按钮。请务必以不同的方式命名。然后当您处理表单时:

if (isset($_POST['next'])) {
  // go on to the next object
  $cnt = $_POST['cnt'] + 1;

} else if (isset($_POST['previous']) {
  $cnt = $_POST['cnt'] - 1;
}

// retrieve object from array and include its file

重要,您不会像上面那样递增cnt - 只会在按下按钮之前递增或递减它。

简而言之,根据用户是按下“下一个”还是“上一个”,更改cnt的值。

答案 1 :(得分:0)

您可以使用array_search http://php.net/manual/en/function.array-search.php识别步骤,然后为下一步添加+1或在上一步中删除-1