この記事では主に PHP ソース コードに関する 14 番目の議論を紹介します。array_combine 関数については、必要な友人に参照してもらえるように共有します。 PHP ソース コードに関するディスカッション 4: array_combine 関数について
array_combine
(PHP 5)
array_combine — 配列を作成し、1 つの配列の値をそのキー名として使用し、別の配列の値をその値として使用します説明
array array_combine (配列キー、配列値)
キー配列の値をキー名として使用し、配列を返します。対応する値として値配列の値を取得します。
2 つの配列内のセルの数が異なる場合、または配列が空の場合は FALSE を返します。
プログラム実装手順:
array_init(return_value); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(keys), &pos_keys); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values); // 初始化数组指针,将其置为双向链接的头指针 while (zend_hash_get_current_data_ex(Z_ARRVAL_P(keys), (void **)&entry_keys, &pos_keys) == SUCCESS && zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&entry_values, &pos_values) == SUCCESS) { // 同时遍历两个数组 if (Z_TYPE_PP(entry_keys) == IS_STRING) { // 如果key值为字符串,以key zval_add_ref(entry_values); add_assoc_zval_ex(return_value, Z_STRVAL_PP(entry_keys), Z_STRLEN_PP(entry_keys)+1, *entry_values); } else if (Z_TYPE_PP(entry_keys) == IS_LONG) { zval_add_ref(entry_values); add_index_zval(return_value, Z_LVAL_PP(entry_keys), *entry_values); } else { zval key; key = **entry_keys; zval_copy_ctor(&key); convert_to_string(&key); // 转化为字符串,如果为数组,则为Array zval_add_ref(entry_values); add_assoc_zval_ex(return_value, Z_STRVAL(key), Z_STRLEN(key)+1, *entry_values); zval_dtor(&key); } zend_hash_move_forward_ex(Z_ARRVAL_P(keys), &pos_keys); zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values); // 下一个元素,其实现为:pos_values = pos_values->pListNext; }
PHP コードでは、キー配列に 2 つの配列が含まれている場合、後者の配列が前の配列を上書きします。つまり、キー配列には要素が 1 つだけ存在します。最後に、
は次のとおりです 表示された PHP コード:
\<?PHP$arr1 = array(1, array(1, 2), array(3, 4), array(5, 6));$arr2 = array(33, 44, 55, 66);$arr3 = array_combine($arr1, $arr2);print_r($arr3);die();
このコードは出力します:
Array ( [1] => 33 [Array] => 66 )
EOF
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
PHP ソース コードに関する簡単な説明 13: array_change_key_case、array_chunk の概要 簡単な説明PHP ソース コードについて 12: return_value について 戻り値 PHP ソース コードについての簡単な説明 11: array_key_exists について、in_array の概要以上がPHP ソース コードの簡単な説明 14: array_combine 関数についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。