程式
//'3.1'陣列宣告
$session_name = $session_txt['3.1'];
echo $session_name."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
我們用到serialize()函式,它會以字串形式傳回某一變數內容,並
將該字串寫入檔案。在load_data()函式中,我們用implode()和file
()將檔案中代表變數的內容字串讀出,並放到\$data變數內。再用
unserialize()函式將資料轉回原來的變數並傳回來。
<br>
</fieldset>
";
//'3.2' 印出陣列內容
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.2'];
echo $session_name."<br>";
$list = array ("Emily","Jesse","Franklin","Chris");
print substr (implode (',',$list),0);
$i = 0;
while ($i <count($list)){
print $list[$i++]."<br>";
}
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
implode()函式會在每個陣列元素後插入逗號,並傳回一個字串,
接著我們用substr()函式去除逗號。
<br>
</fieldset>
";
echo $message."<br>";
//'3.3' 除去相同的陣列元素
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.3'];
echo $session_name."<br>";
//$unique = array_unique ($dupllicates);
$n_array = array (1 =>"<br>//'3.1'陣列宣告",
2 =>"<br>//'3.2' 印出陣列內容",
3 =>"<br>//'3.3' 除去相同的陣列元素"
);
foreach ($n_array as $element){
if (@$tstarray [$element] <3){
array_push ($n_array,$element);
@$tstarray [$element]++;
}
}
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
你想取出陣列中唯一的元素,並去除相同的 array_unique()<br>
另外會出現 Undifine index Undefined variable 對於<br>
\$tstarray變數,加上@在\$tstarray前方,就不會出現。
<br>
</fieldset>
";
echo $message."<br>";
//'3.4' 擴大或縮小陣列
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.4'];
echo $session_name."<br>";
$list = array ("dog","cat","rabbit","ant","horse","cow");
array_splice ($list,5);
foreach ($list as $key => $value){
echo "{$key}: =>{$value} <br>"; //方法一
}
for ($i=0; $i<=count($list);$i++){
echo @$list[$i]."<br>"; //方法二
}
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
縮小陣列的大小,本來是50個(PHP4),用array_splice(),去切
<br>
</fieldset>
";
echo $message."<br>";
//'3.5' 合併陣列
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.5'];
echo $session_name."<br>";
$good_guys =array ("Gandalf","Radagast","Sarauman");
$bad_guys =array ("Nazgul","Sauron","Orcs");
//$all_guys = array_merge ($good_guys,$bad_guys);
$all_guys = array_merge_recursive ($good_guys,$bad_guys);
//$all_guys = $good_guys + $bad_guys; 使用+不行
$good_guys = show_array($good_guys);
$bad_guys = show_array($bad_guys);
$all_guys = show_array($all_guys);
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
使用array_merge()去合併多個陣列,用array_merge_recursive()也可以。
<br>
</fieldset>
";
echo $message."<br>";
//'3.6' 反覆處理陣列元素
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.6'];
echo $session_name."<br>";
function ascii_codes (&$element){
$element = ord ($element);
}
$nice_line ="What Up everyone ";
$chars = preg_split ("//",$nice_line);
array_walk ($chars,'ascii_codes');
show_array($chars);
function ascii_codes1 (&$element1){
$element1 = ord ($element1);
}
$nice_line1 ="What Up everyone ";
$chars1 = preg_split ("//",$nice_line1);
for ($i = 0; $i < count ($chars1); $i++){
$chars1 [$i ] = ascii_codes1($chars1[$i]);
}
//array_walk ($chars1,'ascii_codes1');
//show_array($chars1);
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
array_walk(),參數 (變數,'函數')。空白的ascii_code=32<br>
這邊較留意的是變數前加&符號,稱為以指標傳遞。<br>
不過有個要注意的是,使用物件時,此時應該永遠以指標傳遞。
<br>
</fieldset>
";
echo $message."<br>";
//'3.7' 存取陣列內不同區域
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.7'];
echo $session_name."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
array_slice(變數,n,n),例如array_slice(\$mash_cast,2,2)<br>
取變數\$mash_cast,第三個取兩個
<br>
</fieldset>
";
echo $message."<br>";
//'3.11'隨機排列陣列中的元素
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.11'];
echo $session_name."<br>";
srand ((double)microtime()*1000000);
$some_array = range(1,52);
shuffle($some_array);
echo $some_array[0]."<br>";
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
使用shuffle()函式,隨機改變次序
<br>
</fieldset>
";
echo $message."<br>";
//'3.13'陣列排序
unset ($message); //清空
unset ($session_name);
$session_name = $session_txt['3.13'];
echo $session_name."<br>";
function cmp_debt ($a,$b){
if ($a [1] == $b[1]) return 0;
return ($b [1] >> $a [1]) ? 1 : -1;
}
$buddy_debts = array(array ("John",31),
array ("Dave",12),
array ("Kris",15),
array ("Werner",38),
array ("Phil",9));
usort ($buddy_debts,'cmp_debt');
foreach ($buddy_debts as $buddy_debt){
print $buddy_debt [0]."Owes".$buddy_debt [1];
print "<br>";
}
$message="
<fieldset><legend><font color=red>TIPS</font></legend>
usort()函式接受一個陣列,並以使用者自訂的函式來排列
<br>
</fieldset>
";
echo $message."<br>";