簡體   English   中英

PHP數組和指針混淆

[英]PHP Array & Pointer Confusion

假設我有一個像這樣的函數:

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

我想寫一個loop這樣

第一次執行函數時, 傳遞參數$array

第二次: 參數$array[0]被傳遞

第三次: 參數$array[1]被傳遞

.....

第十二次: 參數$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];  
}

我已經嘗試過了,但是沒有用..

如果有人可以提供解決方案,我將不勝感激。

如果z()應該更改傳遞的數組,則函數定義應為:

function z(&$zzz)
$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++;
}

正如Jack所說,您需要通過引用傳遞$array變量以進行更新。 不太確定該功能試圖實現什么。 如果您需要使用預先確定的維度填充數組,也許array_fill可能會更有用。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM