ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列の削除方法の詳細_PHP チュートリアル

PHP 配列の削除方法の詳細_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:27:25748ブラウズ

PHPを学習すると、PHP配列の削除の問題に遭遇することがあります。ここでは、PHP配列の削除の問題の解決策を紹介します。 C 言語を学習したことがある人は、C 言語が強力な文字列処理能力を持っていることを知っているかもしれません。PHP は C で書かれているため、文字列処理における C の利点を自然に継承しています。しかし、結局のところ、PHP は新しい言語であり、C 言語とは異なります。当然、C とまったく同じであるという保証はありません。したがって、一部の機能はテストを通じてのみ知ることができます。場合によっては、文字列の各文字を処理する必要がある場合があります。一般的なアプローチは次のとおりです。

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">str</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"something"</font></span><span>;  </span></span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  $i</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">strlen</span></font></strong><span>($str);  $i++)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">ch</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">substr</font></span><span>($str,  $i,  1);  </span>
</li>
<li class="alt"><span>//处理$ch  </span></li>
<li class=""><span>} </span></li>
</ol>

これは問題ありませんが、より洗練された方法はありますか?はい、C 言語がそれを処理する方法である配列として扱うだけです。

文字列配列を使用するように上記の例を変更しましょう:

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">str</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"something"</font></span><span>;  </span></span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  $i</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">strlen</span></font></strong><span>($str);  $i++)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">ch</font></span><span>=$str[$i];  </span>
</li>
<li class="alt"><span>//处理$ch  </span></li>
<li class=""><span>} </span></li>
</ol>

これははるかに優れたものではないでしょうか。

PHP 配列から要素を削除する

配列を定義しましたが、PHP 配列から要素のいくつかを削除したい場合はどうすればよいですか? www.phpbuilder.com で unset() 関数を使用するという答えを見ました。テストをしてみましょう。

<ol class="dp-xml">
<li class="alt"><span><span>$a[]="a1";  </span></span></li>
<li class=""><span>$a[]="a2";  </span></li>
<li class="alt"><span>$a[]="a3";  </span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  $i</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">sizeof</span></font></strong><span>($a);  $i++)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class=""><span>echo  $a[$i]  .  "  </span></li>
<li class="alt"><span>";  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>unset($a[0]);  </span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  $i</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">sizeof</span></font></strong><span>($a);  $i++)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class=""><span>echo  $a[$i]  .  "  </span></li>
<li class="alt"><span>";  </span></li>
<li class=""><span>} </span></li>
</ol>

とはどういう意味ですか?まず 3 つの要素を持つ配列 $a を生成して表示し、次に最初の要素 (添え字 0) を削除して表示します。結果として、配列には 2 つの要素が残るはずです。しかし、それは間違いです!答えが思っていたものと違うのは、unset()が使いにくいからでしょうか?よく考えてみると、unset($a[0]) は最初の要素を削除しますが、出力するときは依然として $i=0 から開始します。これは、もちろん PHP が添え字を自動的に調整しません。 。したがって、これに対処するには他のメソッドを使用する必要があります。
<ol class="dp-xml">
<li class="alt"><span><span>$a[]="a1";  </span></span></li>
<li class=""><span>$a[]="a2";  </span></li>
<li class="alt"><span>$a[]="a3";  </span></li>
<li class="">
<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>;  $i</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">sizeof</span></font></strong><span>($a);  $i++)  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class=""><span>echo  $a[$i]  .  "  </span></li>
<li class="alt"><span>";  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>unset($a[0]);  </span></li>
<li class=""><span>reset($a);  //使数组指针回到第1个元素  </span></li>
<li class="alt"><span>while(list($c,  $d)=each($a))  </span></li>
<li class=""><span>{  </span></li>
<li class="alt"><span>echo  $d  .  "  </span></li>
<li class=""><span>";  //$c为数组下标  </span></li>
<li class="alt"><span>} </span></li>
</ol>

これは配列を表示する一般的なメソッドであり、配列の添え字を考慮する必要はありません。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446534.html技術記事 PHP を学習していると、PHP 配列の削除に関する問題に遭遇することがあります。ここでは、PHP 配列の削除に関する問題の解決策を紹介し、ここで共有します。 C言語を勉強したことがある人なら知っているかもしれません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。