php array_splice定義和用法

關于php array_splice的用法以前有講過了,今天主要是詳細的講一下這個函數在應用中的一些詳細的具體的情況,有需要的朋友可以參考一下。

array_splice定義和用法
說明
array array_splice ( array &$input , int $offset [, int $length [, array $ replacement ]] )
array_splice() 把 input 數組中由 offset 和 length 指定的單元去掉,如果提供了 replacement 參數,則用 replacement 數組中的單元取代。返回一個包含有被移除單元的數組。注意 input 中的數字鍵名不被保留。

如果 offset 爲正,則從 input 數組中該值指定的偏移量開始移除。如果 offset 爲負,則從 input 末尾倒數該值指定的偏移量開始移除。

如果省略 length,則移除數組中從 offset 到結尾的所有部分。如果指定了 length 並且爲正值,則移除這麽多單元。如果指定了 length 並且爲負值,則移除從 offset 到數組末尾倒數 length 爲止中間所有的單元。小竅門:當給出了 replacement 時要移除從 offset 到數組末尾所有單元時,用 count($input) 作爲 length。

如果給出了 replacement 數組,則被移除的單元被此數組中的單元替代。如果 offset 和 length 的組合結果是不會移除任何值,則 replacement 數組中的單元將被插入到 offset 指定的位置。注意替換數組中的鍵名不保留。如果用來替換的值只是一個單元,那麽不需要給它加上 array(),除非該單元本身就是一個數組。

以下表達式以同樣方式修改了 $input: array_splice() 等價表達式 array_push($input, $x, $y) array_splice($input,

代碼如下
count($input), 0, array($x, $y))
array_pop($input) array_splice($input, -1)
array_shift($input) array_splice($input, 0, 1)
array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
$input[$x] = $y // 對于鍵名和偏移量等值的數組 array_splice($input, $x, 1, $y)


返回一個包含被移除單元的數組。

例子 1

代碼如下
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,$a2);
print_r($a1);
?>

輸出:

Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )例子 2
與例子 1 相同,但是輸出返回的數組:

代碼如下
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
print_r(array_splice($a1,0,2,$a2));
?>

輸出:

Array ( [0] => Dog [1] => Cat )例子 3
length 參數設置爲 0:

代碼如下
<?php
$a1=array(0=>"Dog",1=>"Cat");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,1,0,$a2);
print_r($a1);
?>

輸出:

Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )


應用實例

代碼如下

$input1 = array("red", "green", "blue", "yellow");
$input2 = array_splice($input1, 2);

//列印剩下的
print_r($input1);

//列印被移走的
print_r($input2);

因爲這個函數的第一個參數是地址引用,返回值是被移走的部份。如果你只是想看剩下的。這樣寫 就可以了。

代碼如下
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
print_r($input);

===================================================
我把手冊的例子加了一個說明。。
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
//從第2個之後開始選,到剩下的全部,選中的移走。
//也就是 "blue", "yellow" 被選中
// $input is now array("red", "green")

array_splice($input, 1, -1);
//從第1個之後開始選,到剩下的全部倒回來一個,選中的移走。
//也就是 "green", "blue",被選中
// $input is now array("red", "yellow")

array_splice($input, 1, count($input), "orange");
//從第1個之後開始選,到剩下的全部,選中的移走,在當前指針位置加一個新值。
//也就是 "green", "blue", "yellow" 被選中
// $input is now array("red", "orange")

array_splice($input, -1, 1, array("black", "maroon"));
//從最後1個之前開始選,往下選1個,選中的移走,在當前指針位置加進一個數組。
//也就是 "yellow" 被選中
// $input is now array("red", "green","blue", "black", "maroon")

array_splice($input, 3, 0, "purple");
//從第3個之後開始選,一個都不選,在當前指針位置插入新值。
//位置就在 "red", "green", "blue" 和 "yellow" 之間
// $input is now array("red", "green", "blue", "purple", "yellow");

更多相關文章
  • sscanf定義和用法及分析sscanf() 函數根據指定的格式解析來自一個字符串的輸入.如果只向該函數傳遞兩個參數,數據將以數組的形式返回.否則,如果傳遞了額外的參數,那麽被解析的數據會存儲在這些參數中.如果區分符的數目大于包含它們的變量的數目,則會發生錯誤.不過,如果區分符少于變量,則額外的變量 ...
  • 一個php入門的基礎教程關于in_array函數的使用方法,有需要的朋友可以參考一下.bool in_array ( mixed $needle , array $haystack [, bool $strict ]
  • 1.定義常量define("constant", "hello world."); 常量只能包含標量數據(boolean,integer,float 和 string). 調用常量時,只需要簡單的用名稱取得常量的值,
  • 本文章給大家介紹C語言標准定義的32個關鍵字用法,有需要了解的朋友可參考參考.關鍵字意義 auto聲明自動變量,缺省時編譯器一般默認爲auto.函數調用是分配空間,調用結束,釋放空間. int聲明整型變量 int a
  • 如果我們要定義回車事件就必須像jquery一樣來綁定事件,在純js下綁定事件我們使用addEventListener與attachEvent他們分別不ie與ff浏覽器用法.例我們來綁定一個回車事件 代碼如下 $(fu
  • 本文我們分享C#異步編程中基于task的異步模式的定義,及基于Task的異步模式實現方法.基于Task的異步模式的定義命名,參數和返回類型在TAP(Task-based Asynchronous Pattern)中的異步操作的啓動和完成是通過一個單獨的方法來表現的,因此只有一個方法要命名.這與IAs ...
  • 重新定義inputtype=file的樣式的例子
    input樣式在html是固定的一個表單風格樣式了,它是非常的難看了,如果你希望他好看一些
  • 本文章來給大家介紹在css3定義required,focus,valid和invalid樣式的方法,此方法目前只支持ie9+及ff,gg浏覽器哦.css3 提示只適用于高級浏覽器:ChromeFirefoxSafariIE9+valid.invalid.required的定義 代碼如下 input: ...
一周排行
  • 本文我們來分享兩段Linux下C++的代碼片斷,linux c++ 獲取基本類型的極值,Linux中用C++通過管道來獲取命令行輸出的內容 是非常實例的.linux c++ 獲取基本類型的極值 源代碼#include ...
  • apache http server遇到了一個問題,需要關閉
    今天發現伺服器彈出一個提醒,大概內容爲apache http server遇到了一個問題,
  • jQuery+FCK編輯器+PHP實現文章分頁代碼
    這款jQuery+FCK編輯器+PHP實現文章分頁代碼是一款在新聞開發中會常用到的,我們經 ...
  • session用法其實很簡單它可以把用戶提交的數據以全局變量形式保存在一個session中並且會生成一個唯一的session_id,這樣就是爲了多了不會産生混亂了,並且session中同一浏覽器同一站點只能有一個se
  • 多伺服器數據同步並且及時數據處理功能想了很多沒找到合適的工具了,今天想了可以使用ftp+rsync工具來實現,下文重點介紹的是php ftp上傳類的實現了.現在很多地方需要用ftp類操作另外的網站伺服器,上傳圖片之類 ...
  • Linuxt系統ntp時間伺服器環境配置
    ntp就是一個網路時間協定了,很多的主機都可以通過ntp來對時間了,下面一起來看看Linu ...
  • 怎樣將iPhone6桌面App圖標合理擺放
    怎樣將iPhone6桌面App圖標合理擺放呢?這個問題對于許多的朋友來講幾乎都不關注了,下
  • WordPress安裝時我們一般設置默認的管理員爲 admin ,不過這樣很容易被機器掃描到,現在的WordPress安裝時可以設置成自己喜歡的用戶名了,本文我們來學習一下禁止使用 admin 用戶嘗試登錄,可以起到 ...
  • DI-524M如何設置無線路由器的無線網路部分
    本文章來給大家介紹DI-524M如何設置無線路由器的無線網路部分詳解,有需要了解的同學可進
  • 今天在伺服器使用了cacti工具,但發現使用之後生成圖片是中文會是亂碼了,根據經驗知道這個肯定是編碼問題了,下面我們一起來看看問題解決辦法.對于剛剛安裝好的Cacti,爲了檢測監控的數據是否准確,以及搭配rrdtoo