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