[英]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.