ホームページ >バックエンド開発 >PHPチュートリアル >インターネット上に配列内の要素の値を削除する関数があります。誰か教えてください。

インターネット上に配列内の要素の値を削除する関数があります。誰か教えてください。

WBOY
WBOYオリジナル
2016-06-23 14:21:04955ブラウズ

配列関数

配列内の要素の値を削除する関数をインターネットで見たことがあります。これは次のように書かれています:
function array_remove_key($array, $keys) {    $num = count($keys);    $num_last = $num - 1;    $this_array_0 = &$array;    $last_key = $keys[$num_last];    for ($i = 0; $i < $num_last; $i++)    {       $this_key = $keys[$i];       $this_var_name = 'this_array_' . $i;       $next_var_name = 'this_array_' . ($i + 1);       if (!array_key_exists($this_key, $$this_var_name)) //这里当循环第二次的时候$$this_var_name是一个字符串      {          break;       }       $$next_var_name = &${$this_var_name}[$this_key];    }    unset(${$next_var_name}[$last_key]);    return $array; } 


最初のループ $$next_var_name=&${$this_var_name}[$this_key] ]; が $this_array_1 を配列内の要素に割り当てた後、2 番目のループで array_key_exists($this_key, $$this_var_name) が決定されると、$$this_var_name は $this_array_1 になります。これは配列ではなく、数値でもあります。試してみましたが、確かにエラーが発生しました。

この機能の全体的な概念がよくわかりません。説明してください。ありがとうございます。

ディスカッションに返信(解決策)

このコードは本当に悪いです、テストコードもムード分析もありません
この関数の機能は、$array の $keys に含まれるすべての要素を削除することです
ちょうど次のようになりますこのように
りー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。