Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion des PHP-Quellcodes 14: Über die Funktion array_combine

Eine kurze Diskussion des PHP-Quellcodes 14: Über die Funktion array_combine

不言
不言Original
2018-06-28 17:25:071482Durchsuche

Dieser Artikel führt hauptsächlich eine kurze Diskussion über den PHP-Quellcode 14 ein: In Bezug auf die Funktion array_combine hat sie einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen.

Eine kurze Beschreibung Diskussion über PHP-Quellcode 10 Viertens: Über die Funktion array_combine

array_combine

(PHP 5)
array_combine – Erstellen Sie ein Array und verwenden Sie dabei den Wert eines Arrays als Schlüsselnamen der Wert eines anderen Arrays als dessen Wert
Beschreibung

Array array_combine (Array-Schlüssel, Array-Werte)

Gibt ein Array zurück und verwendet die Werte aus dem Schlüsselarray als Schlüsselnamen und Die Werte aus dem Wertearray sind die entsprechenden Werte.
Gib FALSE zurück, wenn die Anzahl der Zellen in den beiden Arrays unterschiedlich ist oder das Array leer ist.

Anweisungen zur Programmimplementierung:

 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;  }

Wenn im PHP-Code das Schlüsselarray zwei Arrays enthält, überschreibt das letztere das vorherige, d. h. es gibt nur ein Element im Ende,

ist wie folgt. Angezeigter PHP-Code:

  \<?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();

Dieser Code gibt Folgendes aus:

Array ( [1] => 33 [Array] => 66 )

EOF

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Eine kurze Diskussion über PHP-Quellcode 13: Einführung in array_change_key_case, array_chunk

Eine kurze Diskussion zum PHP-Quellcode Zwölf: Über return_value Rückgabewert

Eine kurze Diskussion des PHP-Quellcodes Elf: Über array_key_exists, Einführung in in_array

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes 14: Über die Funktion array_combine. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn