$a ="a";$b ="b";$ay[$a][$b][]= 3;print_r($ay);
輸出, Array ( [a] => Array ( [b] => Array ( [0] => 3 ) ) ),意思是不是數組a中存在數組b,數組b中存在一個數組,該數組索引0的時候值是3 。
//////////////////////////////////////
$Me[$a][$b] += $Me[$k][$c]; //請問這個相加之後左邊的值會變成什麼樣??
$Me[$z][$m] = $Me[$sy][$my]; //這個賦值之後會變成怎麼樣??
這兩句,看得我頭很大,請幫忙,最好寫一個例子給我示範一下這兩句,我頭腦真的不太好用。。
我只懂得下面這樣簡單的。。
$a[] =1;
$b[] =2;
echo $a[0] + b[0];結果是3 。
也懂得
$a[] =1;
$b[] =2;
echo $a[0] = b[0]; 結果a[0]是2;
回複討論(解決方案)
$Me[$a][$b] += $Me[$k][$c]; //請問這個相加之後左邊的值會變成什麼樣??
$Me[$z][$m] = $Me[$sy][$my]; //這個賦值之後會變成怎麼樣??
這是二維數組的標記法,表示一個元素的值,你大可以當作一個變數:
$a += 1;
$a = 3;
這樣就能看懂了吧
$Me[$a][$b] += $Me[$k][$c]; //請問這個相加之後左邊的值會變成什麼樣??
這是簡寫,等同
$Me[$a][$b] = $Me[$a][$b]+$Me[$k][$c];
等同
$a=$a+$b;
$Me[$z][$m] = $Me[$sy][$my]; //這個賦值之後會變成怎麼樣??
$Me[$z][$m]和$Me[$sy][$my]都是存放一個值的位置
假如$Me[$z][$m]存放的值為1,$Me[$sy][$my]存放的值為2
那麼 echo $Me[$z][$m] = $Me[$sy][$my];
結果就是 $Me[$z][$m]是2
php array() 是多維陣列,
1維的取值方式是:array[]
2維的取值方式是:array[][]
以此類推。
可以這樣返回數組的維度。
/** * 返回數組的維度 * @param [type] $arr [description] * @return [type] [description] */function arrayLevel($arr){ $al = array(0); function aL($arr,&$al,$level=0){ if(is_array($arr)){ $level++; $al[] = $level; foreach($arr as $v){ aL($v,$al,$level); } } } aL($arr,$al); return max($al); } $arr = array( '0'=>'0', ); echo arrayLevel($arr);
合并數組建議採用php array內建的函數 array_merge() http://www.w3school.com.cn/php/func_array_merge.asp
多動手,少動眼,記得給腦子加點油
$Me = array( array(1, 2, 3, 4), array(4, 6, 7, 8), array(9, 10, 11, 12), array(13, 14, 15, 16),);$a = 0;$b = 1;$k = 2;$c = 3;$z = 3;$m = 3;$sy = 1;$my = 2;$Me[$a][$b] += $Me[$k][$c];$Me[$z][$m] = $Me[$sy][$my];print_r($Me);
懂了,謝謝各位牛人