[英]Cheapest way to get size of multidimensional PHP array
我有一个多维数组。 如果它包含的阈$threshold = 1000
少于$threshold = 1000
bit / bytes /包括它的密钥在内的任何数据总计,我想获取更多内容。
在性能/内存方面最便宜的方法是什么,以获得阵列大小的近似值?
现在,我使用strlen(serialize($array))
。 根据评论更新:
$threshold = 1000;
$myArray = array(
'size' => 0,
'items' => array(
['id' => 1, 'content' => 'Lorem ipsum'],
['id' => 2, 'content' => 'Dolor sit'],
['id' => 3, 'content' => 'Amet']
)
);
while($myArray['size'] < $threshold)
{
echo "Array size is below threshold.<br/>";
addStuffToArray($myArray);
}
function addStuffToArray(&$arr)
{
echo "Adding stuff to array.<br/>";
$newArrayItem = array(
'id' => rand(0, 10000),
'content' => rand(999999, 999999)
);
$arr['size'] += strlen(serialize($newArrayItem));
$arr['items'][] = $newArrayItem;
}
PHPFiddle 在这里 。
您总是可以指望:
$count = array_map('count', $myArray);
这将为您提供一个包含所有子数组计数的数组。 但是,您做的方法还不错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.