簡體   English   中英

我們可以在php中使用多長時間數組

[英]how long array we can use in php

我在管理部分管理類別。 每個類別都從url獲取json提要,其中一些我們在admin后端更新並保存在數據庫中。 每個類別的供稿都有大約。 100條記錄,某些提要可能有500條以上的記錄。 我想在一個數組中收集所有這些提要的ID。 並想要比較數據庫中的id數組。 因為提要逐漸變化,所以我在數據庫中有一些原始記錄

所以在我的數組中有超過10,000個ID。 什么是數組可以存儲在php array中的限制?

可以存儲的數組沒有限制( maximum ),但是腳本有限制。

您可以通過在php.ini文件中使用memory_limit來更改腳本的內存限制。

當您收到錯誤“ 內存不足”時,您需要像上面我提到的memory_limit一樣修改腳本內存。

最后一件事,有時您無權修改php.ini ,也無法像在php文件中那樣使用它。

ini_set('memory_limit','128M'); // or something larger

邊注:

如果您從php.ini文件更改了memory_limit ,則必須重新啟動APACHE

是的,元素的最大數量是有限制的。 哈希表結構(數組基本上是哈希表的包裝器)的定義如下:

typedef struct _hashtable {
    uint nTableSize;
    uint nTableMask;
    uint nNumOfElements;
    ulong nNextFreeElement;
    Bucket *pInternalPointer;   /* Used for element traversal */
    Bucket *pListHead;
    Bucket *pListTail;
    Bucket **arBuckets;
    dtor_func_t pDestructor;
    zend_bool persistent;
    unsigned char nApplyCount;
    zend_bool bApplyProtection;
#if ZEND_DEBUG
    int inconsistent;
#endif
} HashTable;

鑒於

typedef unsigned int uint;

限制是無符號整數的最大大小(在32位OS和大多數64位OS上通常為2 ^ 32-1)。

但是實際上,除了在具有大量RAM和32位int的計算機上,您總是會在遇到問題之前達到內存限制。

來源: PHP:數組有最大大小嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM