2016-10-01 5 views
1

私は配列を持って、その文字の名前を持つ変数の値に置き換えられますこのコード行:手紙は

$path_r[$i][$j] = $name; 

直前にその行に、配列($のpath_r)はこのようになります(上記と同じ):

Array 
(
    [0] => /oldsites/web-sites 
    [1] => /oldsites/web_elements 
    [2] => /oldsites/web_old_stuff 
) 

しかし、直後に、それは次のようになります。

Array 
(
    [0] => /olds0tes/web-sites 
    [1] => /oldsites/web_elements 
    [2] => /oldsites/web_old_stuff 
) 

言うことですつまり、文字「i」の最初の値では、変数$ iの値(ゼロ)に置き換えられます。しかし、一度だけ。理由を理解できません。私は間違ったことをやっているのですか、それとも単なる悪魔の活動ですか?

+0

他の変数の値は何ですか? – shawnt00

+2

'$ name'と' $ j'には何がありますか? $ site_r [$ i] [$ j] 'と書いたときの説明は/ oldsite/web-sites [$ j]'( '$ i = 0 'ならば)となります。 $ path_r [$ i] [$ j] = $ name; '$ path_r [$ i] [$ j]の場所に' $ name'を代入するという意味です。 '' SUBSTR($文字列、int型、$ jは)実際にある 'shawnt00の$ iと$ jはちょうどインクリメントさ –

+0

は$ iが$ jを++ ++ – CWill

答えて

2

あなたが言ったように、"I do a bunch of stuff to it and everything is fine until this line of code:"のように、あなたのコードには何が起こっているのか分かりません。あなたが書くとき

: - - :これはなぜ起こるか

一つの論理的な説明を以下に示す

$path_r[$i][$j]

それはのようなものになっています: - "/oldsites/web-sites"[$j]$i = 0; // for an example場合)、

このexpresそこで、基本的$path_r[$i][$j] = $name;

が実際にある$path_r[$i][$j]の場所で$nameを割り当てることを意味するものである

- :シオンは正確に(https://stackoverflow.com/a/17193651/4248328このリンクの説明に基づいて)substr($string, int, $j)

を意味し、 substr($string, int, $j)

このリンクをチェックし、簡単にそれを理解するには: - https://eval.in/653580

結論: - 上記のような

何かがあなたのコードで行われます。上記とまったく同じではなく、そのようなものです。