我正在试图弄清楚如何将数组游标(即数组中的任意位置)作为函数参数传递。假设我有以下数组:
$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"]
等。
答案 0 :(得分:1)
您可以在指示时传递它:
function thingee(&$recipe) {
$recipe = "gouda";
}
$recipe = array("ingredient1"=>array("type"=>"cheddar cheese"));
thingee($recipe["ingredient1"]["type"]);
echo $recipe["ingredient1"]["type"]; // outputs: gouda
但是,您不能指望函数 thingee 能够移动到全局 $ recipe 数组中的另一个元素。它只接收那个没有“父”或“sybling”上下文的元素。
答案 1 :(得分:0)
作为解决方案的例子:
function a(&$a){ $a=$a.'#'; }
$array = array("foo" => "bar");
$t = &$array["foo"];
a($t);
print_r($array);