<big id="9rbpx"></big>
<track id="9rbpx"></track>

      <noframes id="9rbpx"><progress id="9rbpx"><meter id="9rbpx"></meter></progress>

          <ins id="9rbpx"></ins>

          <i id="9rbpx"><meter id="9rbpx"><p id="9rbpx"></p></meter></i>

            主頁 > 知識庫 > 網絡編程 > PHP >

            PHP

            PHP數組學習排序全接觸

            來源:互聯網 作者:PHPer 發表于:2009-09-29 10:56  點擊:
            PHP4函數手冊 array里的算是看完咯, 明天在看看最新的手冊。。。。 array_values($arr) array 返回數組所有元素 復制代碼 - PHP100.com?php $arr = array(a, b, c); $arr = array_flip($arr); //反轉數組的下標和值現在的$arr = array(0, 1, 2); $arr = arr

            PHP4函數手冊 array里的算是看完咯, 明天在看看最新的手冊。。。。

            array_values($arr) array
            返回數組所有元素
            復制代碼 - PHP100.com<?php
            $arr = array("a", "b", "c");
            $arr = array_flip($arr); //反轉數組的下標和值現在的$arr = array(0, 1, 2);
            $arr = array_values($arr); //返回數組$arr中的所有元素
            print_r($arr); //結果: array(0, 1, 2);
            ?>

             

            array_walk($arr, $func, [$data]) bool
            使用用戶自定義的函數遍歷所有的元素,返回true/false
            注意:此函數只處理數組的第一維
            $func是一個函數名
            默認會傳入兩個參數 第一個 $arr的值, 第二個$arr的下標, 一對一對的傳哦
            復制代碼 - PHP100.com<?php
            $arr = array('a', 'b', 'c');
            array_walk($arr, 'test'); //這里第二個參數test就是函數名
            function test(&$val, $key) //這里第一個參數加上引用, 那么修改$val就等于修改$arr中的元素
            {
            $val = 'x_' . $val; //這里給他加一個前綴
            }
            print_r($arr); //輸出結果 array('x_a', 'x_b', 'x_c');
            //這里如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3)); 打印結果將是 array('x_a', 'x_b', 'x_c', 'x_Array');
            ?>


            現在傳入第三那個參數$data, 如果有傳入第三個參數,那么第三個參數將傳給第二個參數定義的函數當中的第三個參數
            復制代碼 - PHP100.com<?php
            array_walk($arr, 'test', 'x_');
            function test(&$val, $key, $prefix)
            {
            $val = $prefix . $val; //其實這里的$prefix就是上面的x_
            }
            print_r($arr); //輸出結果和上面一樣 array('x_a', 'x_b', 'x_c');
            ?>

             

            arsort($arr) bool
            對數組$arr進行倒序排列并保留下標和值的關系,如果排序成功返回true 否則返回 false
            此函數只處理數組的第一維
            復制代碼 - PHP100.com<?php
            $arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
            arsort($arr);
            print_r($arr); //打印結果: array('c' => 'c', 'b' => 'b', 'a' => 'a'); 如果有數字那么數字會在字符前面
            ?>


            asort($arr) bool
            對數組$arr進行正序排列也就是a-z這樣排列, 返回值和上面一樣
            此函數也保留下標和值的關系
            復制代碼 - PHP100.com<?php
            $arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
            asort($arr);
            print_r($arr); //結果沒變, 就是原那數組
            $arr = array('c' => 'c', 'b' => 'b', 'a' => 'a');
            asort($arr);
            print_r($arr); //結果:array('a' => 'a', 'b' => 'b', 'c' => 'c');
            ?>


            compact($varname, ...., $varname) array
            接受n個$varname并將$varname當做下標$varname的值當做值創建一個數組$varname可以為數組
            解釋不清楚, 看例子
            復制代碼 - PHP100.com<?php
            $a = "變量a";
            $b = "變量b";
            $arr = compact('a', 'b'); //這里傳入 a b 分別為上面定義的變量名稱
            print_r($arr); //打印結果為 array('a' => '變量a', 'b' => '變量b');
            //還可以把變量名稱當做數組傳入
            $vars = array('a', 'b');
            $arr = compact($vars);
            print_r($arr); //結果和上面一樣, 其實這個函數就是做extract的相反操作
            ?>


            extract($arr, $type, $prefix) int
            將數組$arr的下標當做變量名, 值當做變量的值
            $arr 目標數組
            $type 這個是遇過遇到相同下標使用什么方式處理, 值是PHP已經定義了的常量
            EXTR_OVERWRITE 如果相同, 那么就覆蓋前面的那個變量, 默認就是這個
            EXTR_SKIP 如果相同, 不覆蓋前面那個變量
            EXTR_PREFIX_SAME 如果相同, 那么使用第三個參數$prefix加到變量名前
            EXTR_PREFIX_ALL 把所有變量名稱都加上$prefix當做前綴
            注意在$type為EXTR_PREFIX_SAME或EXTR_PREFIX_ALL時才需要傳入參數$prefix, 不然傳了也沒用。。。
            例子
            復制代碼 - PHP100.com<?php
            $arr = array('a' => '變量a', 'b' => '變量b');
            extract($arr, EXTR_OVERWRITE); //如果有相同,那么覆蓋
            echo $a; //輸出結果將是 '變量a'
            echo $b; //結果: '變量b'
            $arr = array('a' => '變量a', 'b' => '變量b', 'a' => '第二個變量a'); //這里有兩個元素下標都為a
            extract($arr);
            echo $a; //輸出結果是: '第二個變量a' 很明顯已經覆蓋了 '變量a' 因為默認第二個參數是 EXTR_OVERWRITE
            ?>

             

            count($arr) int
            統計數組中的元素的數目
            復制代碼 - PHP100.com<?php
            $arr = array('a', 'b');
            echo count($arr); //很明顯結果為2
            ?>

             

            current($arr) mixed
            返回數組中當前指針所指的元素,此函數別名 pos
            復制代碼 - PHP100.com<?php
            $arr = array('a', 'b', 'c');
            echo current($arr); //結果為 'a'
            echo next($arr); //指針向下一個移動,所以現在指針所指的是b 輸出結果當然為 'b'
            echo current($arr); //結果又是b 因為當前指針就在b這哦
            echo end($arr) //指針移動到數組最后, 并返回結果, 所以結果為c
            echo prev($arr); //指針向上一個移動, 結果b
            echo key($arr); //返回指針所指元素的下標 因為上面指針到了b那么所有 結果為1 因為b的下標就是1

            有幫助
            (5)
            62.5%
            沒幫助
            (3)
            37.5%
            亚洲五月综合自拍区_色琪琪www?618se con_超碰视频_人人鲁免费播放视频_秋霞A级毛片在线看