Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,我想知道数组的元素是否可以“知道”它们在数组中的位置并引用: 类似于 $foo = array( 'This is position ' . $this->position, 'This is position ' . $this->position, 'This is position ' . $this->position, ), foreach($foo as $item) { echo $item . '\n'; } //Results: /

我想知道数组的元素是否可以“知道”它们在数组中的位置并引用:

类似于

$foo = array(
   'This is position ' . $this->position,
   'This is position ' . $this->position,
   'This is position ' . $this->position,
),

foreach($foo as $item) {

  echo $item . '\n';
}

//Results:
// This is position 0
// This is position 1
// This is position 2
它们本身不能“引用自己”,当然也不能通过
$this->position
进行引用,因为数组元素不一定是对象。但是,您应该跟踪它们的位置,作为迭代数组的副作用:

// Sequential numeric keys:
for ($i = 0; $i < count($array); ++$i) { ... }

// Non-numeric or non-sequential keys:
foreach (array_keys($array) as $key) { ... }
foreach ($array as $key => $value) { ... }

// Slow and memory-intensive way (don't do this)
foreach ($array as $item) {
  $position = array_search($item, $array);
}
//顺序数字键:
对于($i=0;$i$value的数组){…}
//缓慢且内存密集的方式(不要这样做)
foreach($数组作为$项){
$position=array\u搜索($item,$array);
}
它们本身不能“引用自己”,当然也不能通过
$this->position
进行引用,因为数组元素不一定是对象。但是,您应该跟踪它们的位置,作为迭代数组的副作用:

// Sequential numeric keys:
for ($i = 0; $i < count($array); ++$i) { ... }

// Non-numeric or non-sequential keys:
foreach (array_keys($array) as $key) { ... }
foreach ($array as $key => $value) { ... }

// Slow and memory-intensive way (don't do this)
foreach ($array as $item) {
  $position = array_search($item, $array);
}
//顺序数字键:
对于($i=0;$i$value的数组){…}
//缓慢且内存密集的方式(不要这样做)
foreach($数组作为$项){
$position=array\u搜索($item,$array);
}

不,PHP的数组是简单的数据结构(不是对象),没有这种功能


通过使用
each()
并跟踪键,您可以跟踪数组中的位置,但结构本身无法做到这一点。

不,PHP的数组是纯数据结构(不是对象),没有这种功能

通过使用
each()
并跟踪关键点,您可以跟踪阵列中的位置,但结构本身无法做到这一点。

如您所见:

你可以做:

foreach($foo as $key => $value) {
  echo $key . '\n';
}
因此,在该示例中,您可以通过$key访问密钥,如下所示:

你可以做:

foreach($foo as $key => $value) {
  echo $key . '\n';
}

因此,在那个示例中,您可以通过$key访问密钥

我知道这是可能的,但我想知道是否有一种方法可以在不使用foreach语句的情况下实现这一点。@DKinzer您可以使用
array\u search
查找数组中某个项目的索引,只要给定一个数组及其一个元素,但如果没有现成的索引,就很难达到这种状态。我知道这是可能的,但我想知道是否有一种方法可以不用foreach语句来实现。@DKinzer您可以使用
array\u search
查找数组中某个项目的索引,只要给定一个数组及其一个元素,但如果没有现成的索引,就很难达到这种状态。一旦定义了数组,您就可以通过这种方式访问它;但我相信OP询问的是类似SQL的
LAST\u INSERT\u ID()
一旦定义了数组,就可以通过这种方式访问它;但我相信OP询问的是类似SQL的
LAST\u INSERT\u ID()