この記事では、主に PHP ソース コード 13 についての簡単な説明を紹介します。array_change_key_case と array_chunk の導入には、必要な友人が参照できるようになりました。ディスカッション PHP ソース コード 13: array_change_key_case、array_chunk の概要
array_change_key_case
(PHP 4 >= 4.2.0, PHP 5)
array_change_key_case — 文字列キー名をすべて小文字で返す または大文字の配列Description
array array_change_key_case (array input [, int case])
array_change_key_case() 入力配列内のすべてのキー名をすべて小文字または大文字に変更します。変更は、後者のオプションのケース引数に基づいて行われます。ここでは、CASE_UPPER と CASE_LOWER という 2 つの定数を使用できます。デフォルト値は CASE_LOWER です。この関数は数値インデックスを変更しません。
この関数を見ると、配列が配置されているハッシュ テーブルを走査し、対応するキー値を大文字または小文字 (文字列キー値の場合) に変換する必要があると思います。それを読み取った後、いくつかの違いがあります。このプログラムは、各配列要素の参照に 1 を追加します。
array_chunk
array_chunk — 配列を複数に分割します
説明
array array_chunk (array input, int size [, bool prepare_keys])
array_chunk() は配列を複数の配列に分割します。各配列内のセルの数は次のように決定されます。サイズ 。最後の配列には要素が少し少ない場合があります。結果の配列は、インデックスが 0 から始まる多次元配列のセルになります。
オプションのパラメータpreserve_keysをTRUEに設定すると、PHPが入力配列に元のキー名を保持できるようになります。 FALSE を指定すると、各結果配列には 0 から始まる新しい番号でインデックスが付けられます。デフォルト値は FALSE です。
プログラムの実装手順:
array_init(return_value); // 初始化返回值 数组 zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(input), &pos); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(input), (void**)&entry, &pos) == SUCCESS) { // 遍历HASH TABLE/* 如果不存在,则创建并初始化chunk */ if (!chunk) { MAKE_STD_ZVAL(chunk);array_init(chunk);} /* 给数组元素的引用加一,相当于 *entry->refcount++; */ zval_add_ref(entry); if (preserve_keys) { // 保留键值 key_type = zend_hash_get_current_key_ex(Z_ARRVAL_P(input), &str_key,&str_key_len, &num_key, 0, &pos); // 取元素的key值类型,此值是要所元素的nKeyLength属性判断 if (key_type == HASH_KEY_IS_STRING) { // 字符串类型add_assoc_zval_ex(chunk, str_key, str_key_len, *entry); } else { add_index_zval(chunk, num_key, *entry);} } else { add_next_index_zval(chunk, *entry); // 给返回的子数组添加元素} if (!(++current % size)) { // 如果达到分割的界限,则将分割出来创建的子数组添加到返回数组中,并将子数组置为NULl add_next_index_zval(return_value, chunk); chunk = NULL;}zend_hash_move_forward_ex(Z_ARRVAL_P(input), &pos); // 下一个元素} if (chunk) {add_next_index_zval(return_value, chunk); // 剩余的元素}
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトを参照してください。 !
関連する推奨事項:
PHP ソース コード 12 についての簡単な説明: return_value について 戻り値 についての簡単な説明PHP ソース コード 11 : array_key_exists、in_array の概要 PHP ソース コード 10 についての簡単な説明: array_keys、array_values 関数について以上がPHP ソース コードの簡単な説明 13: array_change_key_case と array_chunk の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。