Array size limit in PHP
You could be running out of memory, as your array size is (in theory) only limited by the amount of memory allocated to the script.
Put ini_set('memory_limit', '1024M');
in the beginning of your script to set the memory limit to 1 GB. You may need to increase this even higher for best results.
Maximum number of dimensions in a PHP array
Each array
level generally costs you 304
bytes (determined by checking memory usage, creating an array, then checking again), and the total amount of memory can be calculated using ini_get("memory_limit")
. To get the current usage, run memory_get_usage()
.
On my computer:
ini_get("memory_limit")
returns"128M"
, or134217728
bytes.memory_get_usage()
base use is627120
so I would expect the limit on my kit to be 439442
depth
how long array we can use in php
There is no limit of an array (maximum
) you can store as you can but there is a limit on your script.
You can change the script memory limit by using memory_limit
in your php.ini file.
When you get the error "Out of memory" than you need to modified your script memory as i mentioned above memory_limit
.
One last thing, sometime you didn't have access to modify your php.ini
than you can also use like this in your php
file.
ini_set('memory_limit','128M'); // or something larger
Side Note:
If you change memory_limit
from php.ini
file, than you must need to restart APACHE
.
Is there a maximum size of return values in SOAP/PHP?
The default amount of memory that PHP allows a script to allocate is 128 MB, and this includes variables such as arrays.
This 128 MB limit can be overridden globally by changing the memory_limit
option in the php.ini
. Changing the setting to -1 means "unlimited".
It can also be overridden on a per script basis by using the ini_set
function:
ini_set('memory_limit', '-1'); // Unlimited RAM
When "unlimited" is used, the size of your array is determined by the amount of available RAM on your machine.
Max Size of value in an array PHP
You might need to read up on the length of the max concat here.
Command-Line Format --group_concat_max_len=#
Option-File Format group_concat_max_len
Option Sets Variable Yes, group_concat_max_len
Variable Name group_concat_max_len
Variable Scope Global, Session
Dynamic Variable Yes
-- Permitted Values
Platform Bit Size 32
Type numeric
Default 1024
Range 4 .. 4294967295
-- Permitted Values
Platform Bit Size 64
Type numeric
Default 1024
Range 4 .. 18446744073709547520
Edit: I find it rather amusing that the string that is returned to you is 1024 in length - which just happens to be the default max length in mysql. Coincedence?
What is the max key size for an array in PHP?
It seems to be limited only by the script's memory limit.
A quick test got me a key of 128mb no problem:
ini_set('memory_limit', '1024M');
$key = str_repeat('x', 1024 * 1024 * 128);
$foo = array($key => $key);
echo strlen(key($foo)) . "<br>";
echo strlen($foo[$key]) . "<br>";
Related Topics
Push Notifications from Server to User with PHP/Javascript
Proper Session Hijacking Prevention in PHP
How to Enable --Enable-Soap in PHP on Linux
Utc Date/Time String to Timezone
Simple Way to Read Single Record from MySQL
PHP Constructor to Return a Null
What Is Salt and How to Use It
Laravel Validation: Exists with Additional Column Condition - Custom Validation Rule
How to Get CSV File to Download on Ie? Works on Firefox
Setting a PHP $_Session['Var'] Using Jquery
How to Create and Store Md5 Passwords in MySQL