実際にコードを書くときは配列を扱うことが多く、初心者には難しいです。今回はPHPで配列要素を削除する方法を紹介します。
PHP で配列に要素を追加するのは簡単ですが、配列のキーを削除することについて考えたことはありますか?最近、買い物かごのプログラムに取り組んでいたときに、PHP で配列要素を削除するという問題に遭遇しました。ついに、配列を削除する方法を見つけました。 「文字列配列、配列要素の削除」(OSO にメソッドがあります) を参照して、unset を使用することから始めましたが、欠陥があります。たとえば、$a は配列です:
<ol class="dp-xml"> <li class="alt"><span><span class="tag">< ?</span><span> $</span><span class="attribute">a</span><span>=</span><span class="attribute-value">array</span><span>("red", "green", "blue", "yellow"); </span></span></li><li><span>count($a); //得到4 </span></li><li class="alt"><span>unset($a[1]); //删除第二个元素 </span></li><li><span>count($a); //得到3 </span></li><li class="alt"><span>echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue, </span></li><li><span>echo $a[1]; //无值 </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li> <li><span> </span></li> </ol>たとえば、PHP が配列要素を削除した後、配列内の要素の数 (count() で取得) は変更されましたが、配列の添字は再配置されず、対応する値を操作するには配列を削除する前のキーを使用する必要があります。その後、別のメソッドを採用しましたが、実際には「メソッド」とはまったく呼ばれません。これは、PHP4 の array_splice() で既成の関数を使用します。
<ol class="dp-xml"> <li class="alt"><span><span class="tag">< ?</span><span> $</span><span class="attribute">a</span><span>=</span><span class="attribute-value">array</span><span>("red", "green", "blue", "yellow"); </span></span></li><li><span>count ($a); //得到4 </span></li><li class="alt"><span>array_splice($a,1,1); //删除第二个元素 </span></li><li><span>count ($a); //得到3 </span></li><li class="alt"><span>echo $a[2]; //得到yellow </span></li><li><span>echo $a[1]; //得到blue </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li> <li><span> </span></li> </ol>
このプログラムを前のプログラムと比較すると、array_splice であることがわかります。 () は要素を削除するだけでなく、配列の要素に null 値が存在しないように要素を再配置します (前の例の $a[1] など)。実際には配列要素を置換する関数ですが、置換値を追加しない場合は、単に要素を削除します。 array_splice() の使用法は次のとおりです。
array array_splice (array input, int offset [, int length [,配列置換]]) パラメーターの入力は操作対象の配列です。オフセットが正の場合は最初の要素からカウントされ、負の場合は末尾からカウントされます。要素の開始番号。長さは、PHP によって置換/削除される配列要素の数です。省略した場合は、オフセットから始まり、負の値も指定できます。 ; replace は置き換えられる値です。
http://www.bkjia.com/PHPjc/446243.html
true