计数器变量没有递增

时间:2013-04-15 23:03:49

标签: php

我有一个计数器变量,用于数组中项目的ID或编号。那个和要添加到数组的内容在另一个数组中占据一个位置。因此,这个其他数组是2D数组。

基本上我正在做的是从一个数组中获取内容,最终将动态创建并添加到该数组,并将其放入另一个数组中。然后将该阵列放入存储阵列。 对于我正在做的事情,我必须这样做。道歉。

我想知道为什么我的计数器变量增量只增加一次,当我print_r数组时它和我添加的内容是一部分。

当我运行此代码时,我应该看到的结构是:

1, 1's content
2, 2's content
3, 3's content

但我所看到的是:

1, 1's content
1, 2's content
1, 3's content

为什么不是我的计数器变量后面的值为$ id而不是递增,我怎么能让它递增。 从一个数组中获取,构造另一个数组,并将其放入另一个数组,然后递归地添加其余内容的结构必须保持不变。我没有太多自由来改变代码。 我只是无法弄清楚为什么计数器变量没有递增。

以下是代码:

$counter = 0;
$added_text = array();
$addMe = array("orange is the keyword of the day. Tomorrows is mop.", "I do not think you understnad how much I want it. I need it and it will happen.", "I love all sorts of music. Do I consider it a gift, I am not sure. That is all I know.");

function thing($contents, $addMe)
{
    $counter++;
    $text = strip_tags($contents);

    $id = $counter;
    $content = array(
        'id'      => $id,
        'content'     => $text
    );

    print_r($content);
    echo "<br /><br />";
    array_push($added_text, $content);

        foreach($addMe as $text){
            if(!in_array($added_text, $text)){
                sleep( 1 );
                thing($text, $addMe);
            }
        }
}

thing('hello i am the text 1 as in the text of the first document', $toAdd);

1 个答案:

答案 0 :(得分:1)

你必须保持$ counter在范围内,每次你调用的东西$ counter是未初始化的,所以是“0”ish,然后你调用counter ++,它将它设置为1.

function thing($contents, $addMe, $counter=0)
{
 $counter++;

...


foreach($addMe as $text){
        if(!in_array($added_text, $text)){
            sleep( 1 );
            thing($text, $addMe, $counter);
        }
    }