*語法:implode('陣列元素間的內容',array)
*解釋:函數把數組元素組合為一個字符串。
以下demo了兩個範例互相比較。
一)、
程式碼
<?php
$A = array('A', 'B', 'C');
$AA=implode(',', $A);
echo $AA.'<BR>';
?>
echo 出來的結果A,B,C
二)、而另外一種表達方式是用於SQL的處理方式;而當時的處理條件為,刪除陣列元素以外的資料
假設陣列為以下:
$arr=array('AA','BB','CC')
SQL語法:$sql="delete from table where `Name` not in(" . implode(',', $arr).")";
mysql_query($sql);
SQL印出來結果為:delete from table where `Name` not in(AA,BB,CC)
以上SQL為錯誤的,因為not in裡頭為字串,卻沒有給予元素引號區隔,SQL會顯示錯誤
所以not in裡頭的元素正確的表達方式為以下
delete from table where `Name` not in('AA','BB','CC')
而這時就要利用到implode,以下為更正的表達SQL語法
$sql="delete from table where `Name` not in('" . implode("','", $arr)."')";
mysql_query($sql);
差別在於implode表達方式不一樣,而底下為比較方式的DEMO
<?php
$A = array('A', 'B', 'C');
$AA=implode(',', $A);
echo $AA.'<BR>';
$BB="'".implode("','", $A)."'";
echo $BB.'<BR>';
?>
印出來結果顯示為A,B,C
'A','B','C'
沒有留言:
張貼留言