Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组中获取位置号_Php - Fatal编程技术网

Php 从数组中获取位置号

Php 从数组中获取位置号,php,Php,如果会话中有以下数组,是否可以在每个[cat]中获取项目位置号: Array ( [0] => stdClass Object ( [id] => 1 [cat] => 1 [que] => Description here. ) [1] => stdClass Object ( [id] => 2

如果会话中有以下数组,是否可以在每个[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.
        )
)
例如,下面将给出第二个描述,但如何确定它在[cat]==1中的位置#2(共3个):

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

实际阵列要大得多,并且有超过1个[cat]。我试图获得的计数是每个这样的组。

我确信您正在寻找一种更自然的方式,但更糟糕的情况是,您可以添加另一个元素来保存索引值。

通过在数组开头添加一个虚拟条目:

array_unshift($_SESSION['questions'], array());
$item = $_SESSION['questions'][2]->que;

什么是位置?
id
或数组索引?您是对的,抱歉,数值实际上是id的值。数组中的项可以动态省略,因此我不想将其与表中存储的任何值绑定。我不知道PHP是否支持此选项,但您可以手动处理。。。你能用计数器循环阵列吗?伪c代码来说明我的想法:int index=0;foreach(数组中的对象行){if(row==this)然后break;index++;}返回索引;虽然我会说,如果你有动态内容,如果你知道你要找的项目,这是一种糟糕的做法(不为任何内容分配空间)。cat、id或您正在搜索的文本。用它来比较。请更清楚地了解senario或示例,我很高兴向您解释更多。
    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