1

次のコードで配列リストを作成しました。

<?php

$ids = array();

if (mysql_num_rows($query1))
{
    while ($result = mysql_fetch_assoc($query1))
    {
        $ids["{$result['user_id']}"] = $result;
    }
}
mysql_free_result($query1);

?>

ここで、配列から 2 つの要素を読み取る必要があります。1 つ目は現在の要素で、2 つ目は配列の次の要素です。したがって、簡略化されたプロセスは次のとおりです。

i=0: current_element (pos:0), next_element (pos:1)
i=1: current_element (pos:1), next_element (pos:2)
etc

これを行うために、私はすでに次のコードを書いていますが、ループごとに次の要素を取得できません!

コードは次のとおりです。

if (count($ids)) 
{ 
    foreach ($ids AS $id => $data) 
    { 
        $userA=$data['user_id'];
        $userB=next($data['user_id']);
    }
}

私が受け取るメッセージは次のとおりです。

誰でも助けることができますか?たぶん私はそれを間違ってやろうとしています。

4

2 に答える 2

1

、、、、関数currentは配列自体と連動しnext、配列に位置マークを付けますprevend関数を使用したい場合はnext、おそらくこれはコードです:

if (is_array($ids)) 
{ 
    while(next($ids) !== FALSE) // make sure you still got a next element
    {
        prev($ids);             // move flag back because invoking 'next()' above moved the flag forward
        $userA = current($ids); // store the current element
        next($ids);             // move flag to next element
        $userB = current($ids); // store the current element
        echo('  userA='.$userA['user_id']);
        echo('; userB='.$userB['user_id']);
        echo("<br/>");
    }
}

画面に次のテキストが表示されます。

userA=1; userB=2
userA=2; userB=3
userA=3; userB=4
userA=4; userB=5
userA=5; userB=6
userA=6; userB=7
userA=7; userB=8
于 2012-11-28T13:32:41.947 に答える