0

セッションに次の配列がある場合、各 [cat] でアイテムの位置番号を取得できますか。

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [cat] => 1
            [que] => Description here.
        )

    [1] => stdClass Object
        (
            [id] => 2
            [cat] => 1
            [que] => Description here.
        )

    [2] => stdClass Object
        (
            [id] => 3
            [cat] => 1
            [que] => Description here.
        )
)

たとえば、次の例では 2 番目の説明が表示されますが、[cat] == 1 で 2 番目の位置 (3 のうち) を取得するにはどうすればよいですか。

$item = $_SESSION['questions'][2]->que;

実際の配列はもっと大きく、複数の [cat] があります。私が取得しようとしているカウントは、そのような各グループ内にあります。

4

3 に答える 3

0

よりネイティブな方法を探していると思いますが、最悪のシナリオでは、インデックス値を保持するために別の要素を追加できます。

于 2012-11-14T13:53:36.297 に答える
0

配列の先頭にダミー エントリを追加すると、次のようになります。

array_unshift($_SESSION['questions'], array());
$item = $_SESSION['questions'][2]->que;
于 2012-11-14T13:55:43.517 に答える
0
    foreach($_SESSION['questions'] as $key=>$val)
    {
      if($val->id == 3)
      echo $key;
    }

//or

    foreach($_SESSION['questions'] as $key=>$val)
    {
      if($val->que == "Description here.")
      echo $key;
    }

//do what ever you want
于 2012-11-14T14:01:29.253 に答える