復制代碼 代碼如下:
<?php
//模擬sql數據
$array = array(0=>'apple',1=>'banana',2=>'cat',3=>'dog',4=>'egg','5'=>'father');
//function 用法1
//arr 是傳入的數據 $con 是條件
function f_1($arr,$con){
//這裡的 array 是這個函數內私有的,不會和出面的array沖突
//所以,外地面的 array不裡直接在內面用,裡面的array也不能直接外面用
//先實例一個array
$array = array();
//for foreach while 用法都類似,具體baidu
foreach ($arr as $key => $value) {
//如果循環出來的 value 等於 con 的話,就把他加入到數組
if ($value == $con) {
//數組和變量的區別在於加了個 []
$array[] = array($key => $value);
}
}
//循環得到結果後 返回數組。所以,這個函數就是一個數組
return $array;
//return 執行後就終斷了,無論後面還有什麼代碼 都不會被執行
//return可以看做是一個函數結束的地方
}
//function 用法2
//$con 可以是數組
function f_2($arr,$con){
//先實例一個變量
$code = '<ul>';
foreach ($arr as $key => $value) {
//裡面的for循環 是 循環出con內容
foreach ($con as $value2) {
// .= 往後添加更多 連續定義變量
// 如果第一層數據循環出來的值,和第二層條件循環出現的值相同,添加到 變量裡
//多個for循環來過濾數據也稱為 遞歸
if ($value == $value2) {
$code .= '<li>'.$value.'</li>';
}
}
}
$code .= '</ul>';
//循環得到結果後 返回變量。所以,這個函數就是一個字符串
return $code;
}
//function 用法3
//在函數裡 echo 和 return 有什麼區別 看執行結果
function f_3($arr,$con){
//先實例一個變量
echo '<ul>';
foreach ($arr as $key => $value) {
//裡面的for循環 是 循環出con內容
foreach ($con as $value2) {
// .= 往後添加更多 連續定義變量
// 如果第一層數據循環出來的值,和第二層條件循環出現的值相同,添加到 變量裡
//多個for循環 去過濾數據也稱為 遞歸
if ($value == $value2) {
echo '<li>'.$value.'</li>';
}
}
}
echo '</ul>';
}
?>
f_1 output start<br/>
<?php
//因為 f_1 是一個數組,我們可以打印出來
print_r(f_1($array,'banana'));
?>
<br/>f_1 output end
<hr/><br/>
f_2 output start<br/>
<?php
//f_2 是變量
$con = array('apple','father');
echo f_2($array,$con);
?>
<br/>f_2 output end
<hr/><br/>
f_2 output start<br/>
<?php
//f_3 已經在函數裡面echo 了,所以在函數執行時不用echo
$con = array('apple','father');
f_3($array,$con);
?>
<br/>f_2 output end