PHP ソースコードの簡単な説明 21: array_slice 関数について

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

この記事では、主に PHP ソース コード 21: array_slice 関数について説明します。これを必要な友人に共有します。 PHP ソースコード 21: array_slice 関数

array_slice

(PHP 4, PHP 5)

array_slice — arrayからセクションを取り出す
Description

array array_slice (array array , int offset [, int length [, bool prepare_keys]] )


array_slice() offset パラメータと length パラメータで指定された配列 array 内のシーケンスを返します。

オフセットが負でない場合、シーケンスは配列内のこのオフセットから開始されます。 offset が負の場合、シーケンスは配列の最後から遠く離れた位置から開始されます。

長さが指定され、正の値の場合、シーケンス内にこれだけの数のセルが存在します。長さが指定されていて負の場合、シーケンスは配列の終わりからここまで離れたところで終了します。省略した場合、シーケンスはオフセットから始まり、配列の最後まで進みます。

このセクションでは、プログラムの実装が次のように非常に簡単であることを説明します。

while (pos < offset + length && ...) { ....... }
ログイン後にコピー

array_slice() はデフォルトで配列のキーをリセットすることに注意してください。 PHP 5.0.2 以降、preserve_keys を TRUE に設定することでこの動作を変更できます。

ここでいう配列のキーのリセットとは、配列内の数字キーのリセットを指します。

PHP コードは以下に示されています:

<?PHP $arr = array(2 => 2, 1 => 1, &#39;s&#39; => &#39;s&#39;, &#39;0&#39; => &#39;ddd&#39;); var_dump(array_slice($arr, 0)); die(); /* 此段程序会输出:array(4) { [0]=> int(2) [1]=> int(1) ["s"]=> string(1) "s" [2]=> string(3) "ddd" } */
ログイン後にコピー

ソース コードでは次のことがわかります:

<pre line="1" switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(input), &string_key, &string_key_len, &num_key, 0, &hpos)) {     
case HASH_KEY_IS_STRING:    //    key为字符串,没有重置数组键的操作         
zend_hash_update(Z_ARRVAL_P(return_value), string_key, string_key_len, entry, sizeof(zval *), NULL);         
break;     
case HASH_KEY_IS_LONG:    //    key为数字     
if (preserve_keys) {    //    preserve_keys为true时不重置数字键         
zend_hash_index_update(Z_ARRVAL_P(return_value), num_key, entry, sizeof(zval *), NULL);     
} else {    //    默认情况下重置数字键         
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), entry, sizeof(zval *), NULL);     
}     
break; }
ログイン後にコピー
上記がこの記事の全内容です。皆様のお役に立てれば幸いです。もっと関連するコンテンツについては、PHP の中国語 Web サイトに注目してください。

関連する推奨事項:

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


簡単な説明PHPソースコードについて テンナイン:array_file、range関数について

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート