天天看點

三、自定義函數

自定義函數就是我們自己定義的函數,在php中自定義函數格式如下: function funname(arg1, arg2, arg3......){ //todo return values; } <a target="_blank" href="http://www.php100.com/html/php/rumen/2014/0326/6705.html#viewsource">view source</a> <code>01.</code><code>&lt;?php </code> <code>02.</code><code>function</code> <code>fun(</code><code>$m</code><code>, </code><code>$n</code><code>){ </code> <code>03.</code><code>if</code><code>(</code><code>$m</code><code>==0 || </code><code>$n</code><code>==0){ </code> <code>04.</code><code>return</code> <code>0; </code> <code>05.</code><code>}</code><code>else</code><code>{ </code> <code>06.</code><code>$a</code><code>=</code><code>$m</code><code>*</code><code>$n</code><code>; </code> <code>07.</code><code>return</code> <code>$a</code><code>; </code> <code>08.</code><code>} </code> <code>09.</code><code>} </code> <code>10.</code>  <code>11.</code><code>$p</code><code>=2; </code> <code>12.</code><code>$h</code><code>=3; </code> <code>13.</code><code>echo</code> <code>$p</code><code>.</code><code>"*"</code><code>.</code><code>$h</code><code>.</code><code>"="</code><code>.fun(</code><code>$p</code><code>,</code><code>$h</code><code>); </code> <code>14.</code><code>?&gt;</code> 輸出結果:
三、自定義函數
下面再舉一個可變參數的函數 <code>02.</code><code>/*</code> <code>03.</code><code>function fun($m, $n){</code> <code>04.</code><code>if($m==0 || $n==0){</code> <code>05.</code><code>return 0;</code> <code>06.</code><code>}else{</code> <code>07.</code><code>$a=$m*$n;</code> <code>08.</code><code>return $a;</code> <code>09.</code><code>}</code> <code>10.</code><code>}</code> <code>11.</code>  <code>12.</code><code>$p=2;</code> <code>13.</code><code>$h=3;</code> <code>14.</code><code>echo $p."*".$h."=".fun($p,$h); */</code>  <code>15.</code>  <code>16.</code>  <code>17.</code><code>function</code> <code>fun(</code><code>$m</code><code>, </code><code>$n</code><code>=1, </code><code>$x</code><code>=2){ </code> <code>18.</code><code>$a</code><code>=</code><code>$m</code><code>*</code><code>$n</code><code>*</code><code>$x</code><code>; </code> <code>19.</code><code>return</code> <code>$a</code><code>; </code> <code>20.</code><code>} </code> <code>21.</code>  <code>22.</code><code>$p</code><code>=2; </code> <code>23.</code><code>echo</code> <code>fun(</code><code>$p</code><code>).</code><code>"&lt;br&gt;"</code><code>;          </code><code>// 2*1*2 = 4 </code> <code>24.</code><code>echo</code> <code>fun(</code><code>$p</code><code>, 3).</code><code>"&lt;br&gt;"</code><code>;       </code><code>// 2*3*2 = 12 </code> <code>25.</code><code>echo</code> <code>fun(</code><code>$p</code><code>, 3, 3).</code><code>"&lt;br&gt;"</code><code>;    </code><code>// 2*3*3 = 18 </code> <code>26.</code><code>?&gt;</code>
三、自定義函數
再來看看自定義函數引用傳遞 <code>02.</code><code>/*  </code> <code>14.</code><code>echo $p."*".$h."=".fun($p,$h); </code> <code>15.</code><code>*/</code>  <code>17.</code><code>/*</code> <code>18.</code><code>function fun($m, $n=1, $x=2){</code> <code>19.</code><code>$a=$m*$n*$x;</code> <code>20.</code><code>return $a;</code> <code>21.</code><code>}</code> <code>22.</code>  <code>23.</code><code>$p=2;</code> <code>24.</code><code>echo fun($p)."&lt;br&gt;";          // 2*1*2 = 4</code> <code>25.</code><code>echo fun($p, 3)."&lt;br&gt;";       // 2*3*2 = 12</code> <code>26.</code><code>echo fun($p, 3, 3)."&lt;br&gt;";    // 2*3*3 = 18</code> <code>27.</code><code>*/</code>  <code>28.</code>  <code>29.</code><code>function</code> <code>fun(&amp;</code><code>$n</code><code>){ </code> <code>30.</code><code>$n</code><code>=</code><code>$n</code><code>*</code><code>$n</code><code>; </code> <code>31.</code><code>} </code> <code>32.</code><code>$p</code><code>=2; </code> <code>33.</code><code>fun(</code><code>$p</code><code>); </code> <code>34.</code><code>echo</code> <code>$p</code><code>; </code> <code>35.</code><code>?&gt;</code>
三、自定義函數

二、數組定義指派

1、數組基本寫作格式 簡單形式:array(值1, 值2, 值3, .......) array("aa", 12, true, 2.2, "test", 50); //通過數組下标獲得資料 完整形式:array(鍵1=&gt;值1, 鍵2=&gt;值2, ......) array("title"=&gt;"aa", "age"=&gt;20);  //隻能通過鍵名獲得資料 2、建立數組的方式 <code>1.</code><code>//第一種 </code> <code>2.</code><code>$arr1</code><code>=</code><code>array</code><code>(11, 22, 33, </code><code>"44"</code><code>); </code> <code>3.</code><code>//第二種 </code> <code>4.</code><code>$arr2</code><code>=</code><code>array</code><code>(</code><code>'a'</code><code>=&gt;</code><code>'11'</code><code>, </code><code>'b'</code><code>=&gt;</code><code>'22'</code><code>); </code> <code>5.</code><code>//第三種 </code> <code>6.</code><code>$arr3</code><code>[0]=</code><code>'20'</code><code>; </code> <code>7.</code><code>$arr3</code><code>[1]=</code><code>'30'</code><code>;</code>

三、數組操作

1、修改 $arr=array(11, 22, 33, 44); $arr[0]=55;  //數組變為$arr=array(55, 22, 33, 44); 2、删除 unset($arr[0]);    //數組變為$arr=array(22, 33, 44); 3、使用 echo $arr[0]; $arr=array('a'=&gt;11, 'b'=&gt;22, 'c'=&gt;33, 'd'=&gt;44); echo $arr['b']]; 4、周遊 foreach($arr as $value){ //無鍵名 echo $value."&lt;br&gt;"; foreach($arr as $id=&gt;$value){  //輸出鍵和值 echo $id."__".$value."&lt;br&gt;";

四、二維數組

$arr=array(array("1","11","111"), array("2","22","222")); echo $arr[1][2];

五、數組函數

(1)array_change_key_case(array, case) array:必需,數組。 case:可選,case_lower(預設值,小寫字母傳回數組的鍵),case_upper(大寫字母傳回數組的鍵) 作用:将數組的所有的 key 都轉換為大寫或小寫。 <code>1.</code><code>&lt;?php </code> <code>2.</code><code>$a</code><code>=</code><code>array</code><code>(</code><code>"a"</code><code>=&gt;</code><code>"cat"</code><code>,</code><code>"b"</code><code>=&gt;</code><code>"dog"</code><code>,</code><code>"c"</code><code>=&gt;</code><code>"horse"</code><code>); </code> <code>3.</code><code>print_r(</code><code>array_change_key_case</code><code>(</code><code>$a</code><code>,case_upper)); </code> <code>4.</code><code>?&gt;  </code> <code>5.</code><code>結果:array ( [a] =&gt; cat [b] =&gt; dog [c] =&gt; horse )</code> (2)array_chunk(array,size,preserve_key) array:必需。 size:必需,規定每個新數組包括多少元素。 preserve_key:可選,true(保留鍵名),false(新索引) 作用:把一個數組分成新的數組塊。 <code>02.</code><code>//array_chunk(array,size,preserve_key) </code> <code>03.</code>  <code>04.</code><code>$a1</code><code>=</code><code>array</code><code>(</code><code>"a"</code><code>=&gt;</code><code>"cat"</code><code>,</code><code>"b"</code><code>=&gt;</code><code>"dog"</code><code>,</code><code>"c"</code><code>=&gt;</code><code>"horse"</code><code>,</code><code>"d"</code><code>=&gt;</code><code>"cow"</code><code>); </code> <code>05.</code><code>print_r(</code><code>array_chunk</code><code>(</code><code>$a1</code><code>,2)); </code> <code>06.</code>  <code>07.</code><code>$a2</code><code>=</code><code>array</code><code>(</code><code>"a"</code><code>=&gt;</code><code>"cat"</code><code>,</code><code>"b"</code><code>=&gt;</code><code>"dog"</code><code>,</code><code>"c"</code><code>=&gt;</code><code>"horse"</code><code>,</code><code>"d"</code><code>=&gt;</code><code>"cow"</code><code>); </code> <code>08.</code><code>print_r(</code><code>array_chunk</code><code>(</code><code>$a2</code><code>,2,true)); </code> <code>09.</code>  <code>10.</code><code>?&gt;  </code> <code>11.</code><code>結果:</code> array ( [0] =&gt; array ( [0] =&gt; cat [1] =&gt; dog ) [1] =&gt; array ( [0] =&gt; horse [1] =&gt; cow ) )  array ( [0] =&gt; array ( [a] =&gt; cat [b] =&gt; dog ) [1] =&gt; array ( [c] =&gt; horse [d] =&gt; cow ) ) ....... 像這樣的函數很多,可以在用的時候再查,清單如下(php代表第一次出現版本) 函數 描述 php array() 建立數組。 3 array_change_key_case() 傳回其鍵均為大寫或小寫的數組。 4 array_chunk() 把一個數組分割為新的數組塊。 array_combine() 通過合并兩個數組來建立一個新數組。 5 array_count_values() 用于統計數組中所有值出現的次數。 array_diff() 傳回兩個數組的差集數組。 array_diff_assoc() 比較鍵名和鍵值,并傳回兩個數組的差集數組。 array_diff_key() 比較鍵名,并傳回兩個數組的差集數組。 array_diff_uassoc() 通過使用者提供的回調函數做索引檢查來計算數組的差集。 array_diff_ukey() 用回調函數對鍵名比較計算數組的差集。 array_fill() 用給定的值填充數組。 array_filter() 用回調函數過濾數組中的元素。 array_flip() 交換數組中的鍵和值。 array_intersect() 計算數組的交集。 array_intersect_assoc() 比較鍵名和鍵值,并傳回兩個數組的交集數組。 array_intersect_key() 使用鍵名比較計算數組的交集。 array_intersect_uassoc() 帶索引檢查計算數組的交集,用回調函數比較索引。 array_intersect_ukey() 用回調函數比較鍵名來計算數組的交集。 array_key_exists() 檢查給定的鍵名或索引是否存在于數組中。 array_keys() 傳回數組中所有的鍵名。 array_map() 将回調函數作用到給定數組的單元上。 array_merge() 把一個或多個數組合并為一個數組。 array_merge_recursive() 遞歸地合并一個或多個數組。 array_multisort() 對多個數組或多元數組進行排序。 array_pad() 用值将數組填補到指定長度。 array_pop() 将數組最後一個單元彈出(出棧)。 array_product() 計算數組中所有值的乘積。 array_push() 将一個或多個單元(元素)壓入數組的末尾(入棧)。 array_rand() 從數組中随機選出一個或多個元素,并傳回。 array_reduce() 用回調函數疊代地将數組簡化為單一的值。 array_reverse() 将原數組中的元素順序翻轉,建立新的數組并傳回。 array_search() 在數組中搜尋給定的值,如果成功則傳回相應的鍵名。 array_shift() 删除數組中的第一個元素,并傳回被删除元素的值。 array_slice() 在數組中根據條件取出一段值,并傳回。 array_splice() 把數組中的一部分去掉并用其它值取代。 array_sum() 計算數組中所有值的和。 array_udiff() 用回調函數比較資料來計算數組的差集。 array_udiff_assoc() 帶索引檢查計算數組的差集,用回調函數比較資料。 array_udiff_uassoc() 帶索引檢查計算數組的差集,用回調函數比較資料和索引。 array_uintersect() 計算數組的交集,用回調函數比較資料。 array_uintersect_assoc() 帶索引檢查計算數組的交集,用回調函數比較資料。 array_uintersect_uassoc() 帶索引檢查計算數組的交集,用回調函數比較資料和索引。 array_unique() 删除數組中重複的值。 array_unshift() 在數組開頭插入一個或多個元素。 array_values() 傳回數組中所有的值。 array_walk() 對數組中的每個成員應用使用者函數。 array_walk_recursive() 對數組中的每個成員遞歸地應用使用者函數。 arsort() 對數組進行逆向排序并保持索引關系。 asort() 對數組進行排序并保持索引關系。 compact() 建立一個數組,包括變量名和它們的值。 count() 計算數組中的元素數目或對象中的屬性個數。 current() 傳回數組中的目前元素。 each() 傳回數組中目前的鍵/值對并将數組指針向前移動一步。 end() 将數組的内部指針指向最後一個元素。 extract() 從數組中将變量導入到目前的符号表。 in_array() 檢查數組中是否存在指定的值。 key() 從關聯數組中取得鍵名。 krsort() 對數組按照鍵名逆向排序。 ksort() 對數組按照鍵名排序。 list() 把數組中的值賦給一些變量。 natcasesort() 用“自然排序”算法對數組進行不區分大小寫字母的排序。 natsort() 用“自然排序”算法對數組排序。 next() 将數組中的内部指針向前移動一位。 pos() current() 的别名。 prev() 将數組的内部指針倒回一位。 range() 建立一個包含指定範圍的元素的數組。 reset() 将數組的内部指針指向第一個元素。 rsort() 對數組逆向排序。 shuffle() 把數組中的元素按随機順序重新排列。 sizeof() count() 的别名。 sort() 對數組排序。 uasort() 使用使用者自定義的比較函數對數組中的值進行排序并保持索引關聯。 uksort() 使用使用者自定義的比較函數對數組中的鍵名進行排序。 usort() 使用使用者自定義的比較函數對數組中的值進行排序。