|簡體中文

比思論壇

 找回密碼
 按這成為會員
搜索



查看: 787|回復: 4
打印 上一主題 下一主題

Linux编程之php数组中指针操作的实现代码

[複製鏈接]

989

主題

1

好友

5260

積分

教授

Rank: 8Rank: 8

  • TA的每日心情
    奮斗
    2024-5-15 16:35
  • 簽到天數: 1232 天

    [LV.10]以壇為家III

    推廣值
    2
    貢獻值
    378
    金錢
    1880
    威望
    5260
    主題
    989

    回文勇士 文明人 中學生 高中生 簽到勳章 簽到達人 男生勳章 大學生 文章勇士 附件高人 附件達人 文章達人 教授

    樓主
    發表於 2012-9-17 18:50:17
        php数组中指针操作的实现代码:
       
        //**
       
        * 将数组的内部指针倒回一位
       
        * @param array &$arr
       
        * @return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE
       
        * 如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE
       
        * 要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数
       
        */
       
        mixed prev(array &$arr);
       
        <?php
       
        $transport = array(‘foot', 'bike', 'car', 'plane’);
       
        $mode = current($transport); // $mode = 'foot';
       
        $mode = next($transport); // $mode = 'bike';
       
        $mode = next($transport); // $mode = 'car';
       
        $mode = prev($transport); // $mode = 'bike';
       
        $mode = end($transport); // $mode = 'plane';
       
        $mode = reset($transport) ;//$mode = 'foot';
       
        ?>
       
        array(“key”=>“value”);建立数组
       
        //显示数组
       
        print_r($array);
       
        //使用compact()函数新建数组,并把参数做为新数组的单元;
       
        $newArray = compact(“red”,“green”,“yellow”,“blue”,“array”);
       
        //使用extract()函数把数组中的单元转换为变量
       
        extract($exArray);
       
        echo “$key1 $key2 $key3 $key4 $key5”;
       
        ※检查值、键
       
        array_key_exists($key,$array);//检查数组键
       
        in_array($value,$array);//检查值于数组
       
        ※获取值
       
        //使用array_values()取得数组的值
       
        $carValues = array_values($car);
       
        //取出数组的键名
       
        $twoKeys = array_keys($two);
       
        key($array);//输出当前单元的键名
       
        //数组定义后,使用current()取得当前单元的值
       
        $red = current($array);
       
        list($red,$green) = $array;//把数组中的值赋与变量,$array = array(“红色”,“绿色”);
       
        each($two);//返回数组中当前单元的键和值
       
        ※遍历数组
       
        foreach($two as $subArray);//遍历数组
       
        while(list($key,$value) = each($array)){
       
        echo “$key=>$value,”;//使用each遍历数组
       
        }
       
        ※填充数组
       
        //向左、右填充数组
       
        array_pad($array,+3,“shuzhi”);//2参数为正从左往右填充,数值大于单元数时才填充
       
        $array1 = array_fill(5,5,“test”);//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
       
        //填充数组键名
       
        $keys = array(‘string', 5, 10, 'str’);
       
        $array3 = array_fill_keys($keys,“数组值”);
       
        //使用array_filp()函数交换键名与值
       
        $speed = array_flip($speed);
       
        //使用array_splice()函数替换第6个单元的值为7
       
        $output = array_splice($input,6,0,7);
       
        //使用array_splice()函数删除数组单元,只保留前5个单元
       
        $output = array_splice($input,5);
       
        $array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值
       
        ※排序
       
        shuffle($array);//将数组顺序打乱
       
        //使用array_multisort()对三个数组排序
       
        array_multisort($sort1,$sort2,$sort3);
       
        //把这个数组进行排序,并保持索引关系
       
        asort($array);
       
        //把测试数组进行逆向排序,并保持索引关系
       
        arsort($array);
       
        //使用ksort()对数组按键名排序
       
        ksort($array);
       
        //使用krsort()函数按键名逆向排序
       
        krsort($array);
       
        //使用sort()对测试数组进行排序[以键名排列]
       
        sort($array);
       
        //使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
       
        natsort($array);
       
        //使用natcasesort()函数排序[自然排序]但是忽略数值大小写
       
        natcasesort($array);
       
        //使用array_reverse()函数排序,数组单元按相反排列
       
        $newArray = array_reverse($array,TRUE);//TRUE设时保留原键名
       
        ※交集、差集
       
        //使用array_diff()计算三个数组的差集[对数组数值比较]
       
        $result = array_diff($dog1,$dog2,$dog3);
       
        //使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
       
        $result = array_diff_assoc($dog1,$dog2,$dog3);
       
        //使用array_diff_key()计算三个数组的差集[比较键名]
       
        $result = array_diff_key($dog1,$dog2,$dog3);
       
        //使用array_intersect()计算三个数组的交集[对数组数值比较]
       
        $result = array_intersect($dog1,$dog2,$dog3);
       
        //使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
       
        $result = array_intersect_assoc($dog1,$dog2,$dog3);
       
        //使用array_intersect_key()计算三个数组的交集[比较键名]
       
        $result = array_intersect_key($dog1,$dog2,$dog3);
       
        ※合并数组
       
        //使用array_merge()函数合并数组
       
        $result = array_merge($array1,$array2,$array3,$array4,$array5);
       
        array_rand($input,10);//随机取出10个单元
       
        count($array,COUNT_RECURSIVE);//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组
       
        ※出入栈
       
        //数组出栈,后进先出,数组最后一个单元弹出
       
        array_pop($array);
       
        //数组入栈,将7,8两个数值添加到数组尾部
       
        array_push($array,7,8);
       
        //将数组开头单元移出数组
       
        array_shift($array);
       
        //将7,8添加入数组开头
       
        array_unshift($array,7,8);  
    無效樓層,該帖已經被刪除
    無效樓層,該帖已經被刪除

    0

    主題

    0

    好友

    3089

    積分

    大學生

    Rank: 6Rank: 6

  • TA的每日心情
    開心
    昨天 10:58
  • 簽到天數: 1639 天

    [LV.Master]伴壇終老

    推廣值
    0
    貢獻值
    0
    金錢
    16
    威望
    3089
    主題
    0
    地板
    發表於 2014-3-5 14:46:31
    請善用帖子右下角舉報鍵,來檢舉有害網站/垃圾/宣傳帖,每個舉報會有金錢增加。
    php数组中指针操作的实现代码:

    9

    主題

    0

    好友

    894

    積分

    高中生

    Rank: 4

  • TA的每日心情
    開心
    2021-11-4 09:01
  • 簽到天數: 118 天

    [LV.6]常住居民II

    推廣值
    0
    貢獻值
    0
    金錢
    2209
    威望
    894
    主題
    9
    5#
    發表於 2014-3-12 12:23:38
    学习学习
    重要聲明:本論壇是以即時上載留言的方式運作,比思論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們比思論壇有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

    手機版| 廣告聯繫

    GMT+8, 2024-5-30 11:40 , Processed in 0.018805 second(s), 26 queries , Gzip On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回頂部