Передать курсор ассоциативного массива PHP как параметр функции

Я пытаюсь выяснить, как передать курсор массива (т.е. произвольное местоположение в массиве) в качестве параметра функции. Предположим, у меня есть следующий массив:

$recipe = array("ingredient1"=>array(
"type"=>"cheddar cheese",
"quantity"=>"1 cup",
"format"=>"shredded"),
"ingredient2"=>array(
"type"=>"wheat bread",
"quantity"=>"2 slices")
);

Предположим дополнительно, что у меня есть функция thingee(&$recipe) что (очевидно) принимает $recipe в качестве параметра по ссылке.

Вопрос: как пройти thingee() место в пределах $recipeт.е. $recipe["ingredient1"]["quantity"], $recipe["ingredient2"]["type"], так далее.

-1

Решение

Вы можете просто передать его, как указано:

function thingee(&$recipe) {
$recipe = "gouda";
}

$recipe = array("ingredient1"=>array("type"=>"cheddar cheese"));
thingee($recipe["ingredient1"]["type"]);
echo $recipe["ingredient1"]["type"]; // outputs: gouda

Тем не менее, вы не можете ожидать в функции thingee чтобы иметь возможность перейти к другому элементу в глобальном $ рецепт массив. Он просто получает этот один элемент без контекста «parent» или «sybling».

1

Другие решения

пример как решение:

function a(&$a){ $a=$a.'#'; }
$array = array("foo" => "bar");
$t = &$array["foo"];
a($t);
print_r($array);
0