PHP ソースコードに関する簡単な説明 20: array_flip、array_reverse 関数について

不言
リリース: 2023-04-01 22:48:02
オリジナル
1880 人が閲覧しました

この記事では主に PHP のソース コード 20 について紹介します。array_flip 関数と array_reverse 関数については、参考になる値があるので、必要な方は参考にしてください。

簡単に説明します。 PHP について話す ソースコード 20: array_flip、array_reverse 関数について

array_flip
(PHP 4, PHP 5)

array_flip — 配列内のキーと値を交換する
Description
array array_flip (array trans)

array_flip() 反転した配列を返します。たとえば、trans のキー名が値になり、trans の値がキー名になります。

trans の値は正当なキー名である必要があることに注意してください。たとえば、整数または文字列である必要があります。値の型が間違っている場合は警告が発行され、問題のキーと値のペアは元に戻されません。

同じ値が複数回出現する場合、最後のキー名がその値として使用され、他のキー名はすべて失われます。

array_flip() は、失敗すると FALSE を返します。
ソース コードの説明: 配列が配置されているハッシュ テーブルを走査し、キーを取り出し、新しい ZVAL を作成します。次に、前の配列の値をキーとして使用して、返された配列のハッシュ テーブルに書き込みます。
前の値のみ LONG および STRING がサポートされます。他の型がある場合は、警告が表示されます。 型判定のソース コードは次のとおりです。

 if (Z_TYPE_PP(entry) == IS_LONG) {
 zend_hash_index_update(Z_ARRVAL_P(return_value), Z_LVAL_PP(entry), &data, sizeof(data), NULL);
 } 
 else if (Z_TYPE_PP(entry) == IS_STRING) {
 zend_symtable_update(Z_ARRVAL_P(return_value), Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &data, sizeof(data), NULL);} else {zval_ptr_dtor(&data); /* will free also zval structure */php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only flip STRING and INTEGER values!");}
ログイン後にコピー

array_reverse

( PHP 4、PHP 5)

array_reverse — 単位配列を逆順で返します
Description
array array_reverse (array array [, bool prepare_keys])

array_reverse() は配列を受け入れます配列を入力として使用し、preserve_keys が TRUE の場合は、元のキー名を保持し、セルを逆順にした新しい配列を返します。
ソース コードの説明: 配列はハッシュ テーブルに格納されており、ハッシュ テーブルは二重リンク リストをサポートしているため、プログラムは二重リンク リストの最後の要素から開始し、前方に移動し、プロセス内で実行されます。 、すべての要素はコピーを作成し (つまり (*entry)->refcount ;)
、これを返された配列が配置されているハッシュ テーブルに書き込みます。

ハッシュ テーブルの二重リンク リストについては、前の記事で紹介したハッシュ テーブルの定義を参照できます。
http://www.php.cn/php-weizijiaocheng- 405316.html

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP ソース コード 19 についての簡単な説明: array_file、range 関数について

簡単な説明PHPソースコードについて 10 8:array_diff_key、array_diff_assoc、array_udiff_assocについて 関数######

以上がPHP ソースコードに関する簡単な説明 20: array_flip、array_reverse 関数についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!