PHP数组&指针混乱

时间:2012-05-11 08:07:05

标签: php arrays pointers

假设我有这样的功能:

function z($zzz){
   for($c=0;$c<5;$c++){
   $zzz[$c]= 10;  
   //more and more codes
   }    
}

我想写一个loop以便

第一次执行该功能时,参数$array已通过

第二次:参数$array[0]已通过

第三次:参数$array[1]已通过

.....

和第12次:参数$array[0][0]已通过

这就是我想到的:

$a = -1;
$b = -1;
$array = array();

while($a<10){
    while($b<10){
         z($array);
         $b++;
         $array= &$array[$b];
    }
    $a++;
    $array= &$array[$a];  
}

我已经尝试过,但它没有用..

如果有人能提供解决方案,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果z()应该更改传递的数组,则函数定义应为:

function z(&$zzz)

答案 1 :(得分:0)

$a = 0;
while ($a < 99)         // <-- edit as applicable
{
   $b = 0
   while ($b < 12)
   {
      if ($b == 0)
      {
         Z($array[$a]);
      } else
      {
         Z($array[$a][$b]);
      }
     $b++;
   }
   $a++;
}

正如杰克所说,您需要通过引用传递$array变量以进行更新。不太确定该功能试图实现的功能。如果您需要使用预先确定的维度填充数组,则array_fill可能更有用。

http://www.php.net/manual/en/function.array-fill.php

function z(&$zzz){
   for($c=0;$c<5;$c++){
      $zzz[$c]= 10;  
      //more and more codes
   }    
}