Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

如何在php嵌套数组中引用位置

如何在php嵌套数组中引用位置,php,arrays,Php,Arrays,我有一个数组$myarray,比如: Array ( [45] => stdClass Object ( [id] => 45 [response_id] => 2 [question_id] => 1 [choice_id] => 2 ) [46] => stdClass Object ( [id] => 46 [response_id] => 2 [question_id] =

我有一个数组
$myarray
,比如:

Array (
  [45] => stdClass Object (
    [id] => 45
    [response_id] => 2
    [question_id] => 1
    [choice_id] => 2
  )
  [46] => stdClass Object (
    [id] => 46
    [response_id] => 2
    [question_id] => 2
    [choice_id] => 4
  )
  ...
) 
如何引用此阵列的位置? 例如,获得第一、第二。阵列的位置

唯一可行的办法就是我明确地说

$myarray[45]->choice_id
但我并不总是知道数字,我想参考位置。是否有方法将第一个位置引用为:

$myarray[0]->choice_id

谢谢

在这种情况下,您似乎还可以使用
数组\ u值重新为数组编制索引。由于键与每个内部对象中的id属性值相同,因此不会丢失任何数据

但一般来说,如果要在保留其键的同时拾取数组中的任意位置,一种方法是使用它构造迭代器。例如:

$iterator = new ArrayIterator($array);
$iterator->seek(2);               // go to position 2 (regardless of key)
$value = $iterator->current();

当然,如果您特别想要第一项,最简单的方法是
$value=reset($array)

在这种情况下,您似乎可以使用
数组\ u值重新为数组编制索引。由于键与每个内部对象中的id属性值相同,因此不会丢失任何数据

但一般来说,如果要在保留其键的同时拾取数组中的任意位置,一种方法是使用它构造迭代器。例如:

$iterator = new ArrayIterator($array);
$iterator->seek(2);               // go to position 2 (regardless of key)
$value = $iterator->current();

当然,如果您特别想要第一项,最简单的方法是
$value=reset($array)

您可以使用
array\u value
以通常的零索引顺序重置键。您可以使用
array\u value
以通常的零索引顺序重置键。