0

PHP配列に格納されているデータの量を測定する方法を探しています。配列内の要素の数について話しているのではなく (これは で把握できますcount($array, COUNT_RECURSIVE))、すべてのキーとそれに対応する値からのデータの累積量です。例えば:

array('abc'=>123); // size = 6
array('a'=>1,'b'=>2); // size = 4

私が興味を持っているのは、正確な量ではなく大きさの順序であるため (処理メモリと時間の使用量と配列のサイズを比較したい)、次のトリックを使用することを考えました。

strlen(print_r($array,true));

ただし、オーバーヘッドの量はprint_r配列の構造によって異なり、一貫した結果が得られません。

echo strlen(print_r(array('abc'=>123),true)); // 27
echo strlen(print_r(array('a'=>1,'b'=>2),true)); // 35

PHP の配列に保存されているデータの量を測定する方法はありますか (理想的にはワンライナーで、本番環境で実行時にこれを実行する必要があるため、パフォーマンスにあまり影響を与えません)。

4

2 に答える 2

1

これはうまくいきますか:

<?php
    $arr = array('abc'=>123);
    echo strlen(implode('',array_keys($arr)).implode('',$arr));
?>
于 2012-09-19T09:29:57.097 に答える