Eine kurze Diskussion des PHP-Quellcodes 16: Informationen zur Funktion array_count_values ​​​​

不言
Freigeben: 2023-04-01 22:22:02
Original
2437 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die kurze Diskussion zum PHP-Quellcode 16 vorgestellt: Die Funktion array_count_values ​​​​hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen Eine kurze Diskussion zum PHP-Quellcode 10 Sechs: Über die Funktion array_count_values ​​​​

array_count_values

(PHP 4, PHP 5)

array_count_values ​​​​– zählt die Anzahl aller Vorkommen Werte im Array

Erklärung

array array_count_values ​​​​(Array-Eingabe)

array_count_values() gibt ein Array zurück, das den Wert im Eingabearray als Schlüsselnamen und die verwendet Häufigkeit, mit der der Wert im Eingabearray als Wert angezeigt wird.

Quellprogrammbeschreibung:

Die beiden Kommentare im Quellcode veranschaulichen die Implementierung dieser Funktion

  /* Initialize return array */
    array_init(return_value);     /* Go through input array and add values to the return array */
Nach dem Login kopieren

Aber es gibt einige Details, die Aufmerksamkeit erfordern:

1. Diese Funktion kann nur Zeichenfolgen und Zahlen erkennen, daher verwendet das Programm Anweisungen ähnlich der folgenden:

if (Z_TYPE_PP(entry) == IS_LONG) {} else if (Z_TYPE_PP(entry) == IS_STRING) {} else {
            php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only count STRING and INTEGER values!");}
Nach dem Login kopieren

2. Stellen Sie während des Durchlaufvorgangs zunächst fest, ob diese nicht vorhanden sind. Dieser Beurteilungsprozess basiert auf Zeichenfolgen und Zahlen sind auch unterschiedlich, aber am Ende sind es alle Operationen an der Hash-Tabelle

Im Code verwendet die Initialisierung von zval das Makro zval *data;

Die Definition, dies zu verfolgen Das Makro lautet wie folgt:

MAKE_STD_ZVAL(data);==> #define MAKE_STD_ZVAL(zv)                 \    zend.h 586行
    ALLOC_ZVAL(zv); \
    INIT_PZVAL(zv); ==> #define ALLOC_ZVAL(z)    \
    ZEND_FAST_ALLOC(z, zval, ZVAL_CACHE_LIST)    zend_alloc.h 165行 ==> #define ZEND_FAST_ALLOC(p, type, fc_type)    \
    (p) = (type *) emalloc(sizeof(type))                   zend_alloc.h  152行 ==> #define emalloc(size)                        _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)    zend_alloc.h 56行==> ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)      zend_alloc.c 2288行 程序实现
 ==>  #define INIT_PZVAL(z)        \                 zend.h 576行
    (z)->refcount = 1;        \    (z)->is_ref = 0;
Nach dem Login kopieren

EOF

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein. Bitte achten Sie auf PHP Chinesische Website!

Verwandte Empfehlungen:

Eine kurze Diskussion über PHP-Quellcode 15: Über die Funktion array_walk


Eine kurze Diskussion über PHP-Quellcode 14: Über die Funktion array_combine


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

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes 16: Informationen zur Funktion array_count_values ​​​​. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage