将PHP关联数组游标作为函数参数传递

时间:2015-12-15 21:39:14

标签: php arrays cursor

我正在试图弄清楚如何将数组游标(即数组中的任意位置)作为函数参数传递。假设我有以下数组:

$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"]等。

2 个答案:

答案 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);