2012-05-11 11 views
1

のは、私はこのような機能を持っているとしましょう:PHPアレイ&ポインタ混乱

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

私は関数が実行されるloop

ように1回目を書きたい、引数$arrayを渡され、

2回目:引数$array[0]

0が渡されます3回目しばらく

引数$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]; 
} 

私は試しましたが、うまくいかなかった..

Z()は、渡された配列を変更することになっている場合は、誰かが解決策を提供できる場合、私は..

+0

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

私たちは、あなたが何をしているかわかりませんので、解決策を提供することは困難になります。それをより良く説明しよう。 – Jon

+0

そして、制御構造内のコードをインデントすると(whileループなど)、読みやすくなります –

+0

はい、それをより良く説明してください –

答えて

1

をいただければ幸いです、あなたの関数の定義は次のようになります。

function z(&$zzz) 
+0

と 'for($ c = 0; $ c> 5; $ C++) ($ c = 0; $ c> 0; $ c <5; $ C++) ' – dInGd0nG

+0

@ dInGd0nGのために申し訳ありません。ありがとう!! –

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が便利です。

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