繁体   English   中英

获取多维PHP数组大小的最便宜方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM