PHP:可以从对数组元素的引用中确定父数组的名称和键吗?

dud*_*ude 5 php arrays reference

我们假设我们有一个像这样的数组

$arr=array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4));
Run Code Online (Sandbox Code Playgroud)

以及对其中一个要素的引用

$element=&$arr[1]['c'];
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以单独使用引用返回到原始数组?那就是以某种方式回到父数组而不知道它的名字......这对我来说在一个更复杂的场景中是有用的.

Art*_*cto 5

不,这肯定是不可能的.作为一个"参考"(正如PHP所说的那样;它实际上是一个复制抑制剂)在这个问题上根本无济于事.您必须将原始数组与元素一起存储.

$elArrPair = array(
    "container" => $arr,
    "element"   => &$arr[1]['c'],
);
Run Code Online (Sandbox Code Playgroud)

这样您就可以更改元素$elArrPair["element"] = $newValue并仍然可以访问容器.


Sco*_*ers 0

您无法从$element$arrin_array()您当然可以使用,但是 about 中没有任何内容$element包含对 的引用$arr