uTools-Manuals/docs/php/array_splice.html
2019-04-28 19:00:34 +08:00

173 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>去掉数组中的某一部分并用其它值取代</title>
</head>
<body class="docs"><div id="layout">
<div id="layout-content"><div id="function.array-splice" class="refentry">
<div class="refnamediv">
<h1 class="refname">array_splice</h1>
<p class="verinfo">(PHP 4, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">array_splice</span> &mdash; <span class="dc-title">
去掉数组中的某一部分并用其它值取代
</span></p>
</div>
<div class="refsect1 description" id="refsect1-function.array-splice-description">
<h3 class="title">说明</h3>
<div class="methodsynopsis dc-description">
<span class="methodname"><strong>array_splice</strong></span>
( <span class="methodparam"><span class="type">array</span> <code class="parameter reference">&$input</code></span>
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$offset</code></span>
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$length</code><span class="initializer"> = count($input)</span></span>
[, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$replacement</code><span class="initializer"> = array()</span></span>
]] ) : <span class="type">array</span></div>
<p class="para rdfs-comment">
<code class="parameter">input</code> 数组中由
<code class="parameter">offset</code><code class="parameter">length</code>
指定的单元去掉,如果提供了 <code class="parameter">replacement</code> 参数,则用其中的单元取代。
</p>
<p class="para">
注意
<code class="parameter">input</code> 中的数字键名不被保留。
</p>
<blockquote class="note"><p><strong class="note">Note</strong>:
<span class="simpara">
如果 <code class="parameter">replacement</code> 不是数组,会被
<a href="language.types.array.html#language.types.array.casting" class="link">类型转换</a>
成数组 (例如: <code class="code">(array) $replacement</code>)。
当传入的 <code class="parameter">replacement</code> 是个对象或者 <strong><code>NULL</code></strong>,会导致未知的行为出现。
</span>
</p></blockquote>
</div>
<div class="refsect1 parameters" id="refsect1-function.array-splice-parameters">
<h3 class="title">参数</h3>
<p class="para">
<dl>
<dt>
<code class="parameter">input</code></dt>
<dd>
<p class="para">
输入的数组。
</p>
</dd>
<dt>
<code class="parameter">offset</code></dt>
<dd>
<p class="para">
如果 <code class="parameter">offset</code> 为正,则从 <code class="parameter">input</code>
数组中该值指定的偏移量开始移除。如果 <code class="parameter">offset</code>
为负,则从 <code class="parameter">input</code> 末尾倒数该值指定的偏移量开始移除。
</p>
</dd>
<dt>
<code class="parameter">length</code></dt>
<dd>
<p class="para">
如果省略 <code class="parameter">length</code>,则移除数组中从 <code class="parameter">offset</code>
到结尾的所有部分。如果指定了 <code class="parameter">length</code>
并且为正值,则移除这么多单元。如果指定了 <code class="parameter">length</code>
并且为负值,则移除从 <code class="parameter">offset</code> 到数组末尾倒数
<code class="parameter">length</code> 为止中间所有的单元。
如果设置了 <code class="parameter">length</code> 为零,不会移除单元。
小窍门:当给出了
<code class="parameter">replacement</code> 时要移除从 <code class="parameter">offset</code>
到数组末尾所有单元时,用 <em>count($input)</em> 作为 <code class="parameter">length</code>
</p>
</dd>
<dt>
<code class="parameter">replacement</code></dt>
<dd>
<p class="para">
如果给出了 <code class="parameter">replacement</code> 数组,则被移除的单元被此数组中的单元替代。
</p>
<p class="para">
如果
<code class="parameter">offset</code><code class="parameter">length</code>
的组合结果是不会移除任何值,则 <code class="parameter">replacement</code>
数组中的单元将被插入到 <code class="parameter">offset</code>
指定的位置。 注意替换数组中的键名不保留。
</p>
<p class="para">
如果用来替换 <code class="parameter">replacement</code> 只有一个单元,那么不需要给它加上
<em>array()</em>,除非该单元本身就是一个数组、一个对象或者 <strong><code>NULL</code></strong>
</p>
</dd>
</dl>
</p>
</div>
<div class="refsect1 returnvalues" id="refsect1-function.array-splice-returnvalues">
<h3 class="title">返回值</h3>
<p class="para">
返回一个包含有被移除单元的数组。
</p>
</div>
<div class="refsect1 examples" id="refsect1-function.array-splice-examples">
<h3 class="title">范例</h3>
<p class="para">
<div class="example" id="example-6067">
<p><strong>Example #1 <span class="function"><strong>array_splice()</strong></span> 例子</strong></p>
<div class="example-contents">
<div class="phpcode"><pre><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$input&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"red"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"green"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"blue"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"yellow"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//&nbsp;$input&nbsp;is&nbsp;now&nbsp;array("red",&nbsp;"green")<br /><br /></span><span style="color: #0000BB">$input&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"red"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"green"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"blue"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"yellow"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//&nbsp;$input&nbsp;is&nbsp;now&nbsp;array("red",&nbsp;"yellow")<br /><br /></span><span style="color: #0000BB">$input&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"red"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"green"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"blue"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"yellow"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">),&nbsp;</span><span style="color: #DD0000">"orange"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//&nbsp;$input&nbsp;is&nbsp;now&nbsp;array("red",&nbsp;"orange")<br /><br /></span><span style="color: #0000BB">$input&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"red"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"green"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"blue"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"yellow"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #DD0000">"black"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"maroon"</span><span style="color: #007700">));<br /></span><span style="color: #FF8000">//&nbsp;$input&nbsp;is&nbsp;now&nbsp;array("red",&nbsp;"green",<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"blue",&nbsp;"black",&nbsp;"maroon")<br /><br /></span><span style="color: #0000BB">$input&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"red"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"green"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"blue"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"yellow"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">3</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"purple"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">//&nbsp;$input&nbsp;is&nbsp;now&nbsp;array("red",&nbsp;"green",<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"blue",&nbsp;"purple",&nbsp;"yellow");<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</pre></div>
</div>
</div>
</p>
<p class="para">
<div class="example" id="example-6068">
<p><strong>Example #2 <span class="function"><strong>array_splice()</strong></span> 例子</strong></p>
<div class="example-contents"><p>
以下表达式以同样方式修改了 <var class="varname"><var class="varname">$input</var></var>
</p></div>
<div class="example-contents">
<div class="phpcode"><pre><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">//&nbsp;添加两个新元素到&nbsp;$input<br /></span><span style="color: #0000BB">array_push</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$x</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">$x</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">//&nbsp;移除&nbsp;$input&nbsp;中的最后一个元素<br /></span><span style="color: #0000BB">array_pop</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;移除&nbsp;&nbsp;$input&nbsp;中第一个元素<br /></span><span style="color: #0000BB">array_shift</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;&nbsp;$input&nbsp;的开头插入一个元素<br /></span><span style="color: #0000BB">array_unshift</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$x</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;array(</span><span style="color: #0000BB">$x</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">//&nbsp;&nbsp;$input&nbsp;&nbsp;的索引&nbsp;&nbsp;$x&nbsp;处替换值<br /></span><span style="color: #0000BB">$input</span><span style="color: #007700">[</span><span style="color: #0000BB">$x</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;对于键名和偏移量等值的数组<br /></span><span style="color: #0000BB">array_splice</span><span style="color: #007700">(</span><span style="color: #0000BB">$input</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$x</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$y</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</pre></div>
</div>
</div>
</p>
</div>
<div class="refsect1 seealso" id="refsect1-function.array-splice-seealso">
<h3 class="title">参见</h3>
<p class="para">
<ul class="simplelist">
<li class="member"><span class="function"><a href="array_slice.html" class="function" rel="rdfs-seeAlso">array_slice()</a> - 从数组中取出一段</span></li>
<li class="member"><span class="function"><a href="unset.html" class="function" rel="rdfs-seeAlso">unset()</a> - 释放给定的变量</span></li>
<li class="member"><span class="function"><a href="array_merge.html" class="function" rel="rdfs-seeAlso">array_merge()</a> - 合并一个或多个数组</span></li>
</ul>
</p>
</div>
</div></div></div></body></html>