この記事では、主に PHP ソース コード 21: array_slice 関数について説明します。これを必要な友人に共有します。 PHP ソースコード 21: array_slice 関数
(PHP 4, PHP 5)
array_slice — arrayからセクションを取り出す
Description
array_slice() offset パラメータと length パラメータで指定された配列 array 内のシーケンスを返します。
このセクションでは、プログラムの実装が次のように非常に簡単であることを説明します。
while (pos < offset + length && ...) { ....... }
array_slice() はデフォルトで配列のキーをリセットすることに注意してください。 PHP 5.0.2 以降、preserve_keys を TRUE に設定することでこの動作を変更できます。
PHP コードは以下に示されています:
<?PHP $arr = array(2 => 2, 1 => 1, 's' => 's', '0' => 'ddd'); 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 ソース コード 20 に関する簡単な説明: array_flip、array_reverse 関数について
簡単な説明PHPソースコードについて テンナイン:array_file、range関数について
以上がPHP ソースコードの簡単な説明 21: array_slice 関数についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。