PHP の 2 次元配列には空の数値をいくつ格納できますか?

PHPz
リリース: 2023-04-18 14:14:41
オリジナル
559 人が閲覧しました

2 次元配列は、別の配列を含む配列です。 PHP では、array 関数を使用して配列を作成することも、[] 記号を使用して配列を作成することもできます。 2 次元配列を作成するには、次のコードを使用できます。

$twoDimensionalArray = array(
  array(1, 2, 3),
  array(4, 5, 6),
  array(7, 8, 9)
);

// 或者使用 []

$twoDimensionalArray = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
ログイン後にコピー

ここでは、長さ 3 の 3 つの 1 次元配列を含む 3 x 3 の 2 次元配列を作成します。次に、この記事の主題である、PHP の空の数値が最大何個の 2 次元配列を格納できるかに戻ります。

PHP では、空の数値 (null) はデータ型とは見なされず、メモリを占有しません。これは、変数に値がないことを示す特殊なケースです。したがって、PHP では、空の数値は配列の長さとサイズに影響を与えません。したがって、実際には、2 次元配列に空の数値をいくつ格納できるかという問題に対する明確な答えはありません。それはメモリの制限とプログラムの処理能力に依存するためです。

PHP プログラムが非常に単純で、メモリが十分に大きく、使用可能な最大メモリが $memoryLimit であると仮定すると、非常に大きな 2 次元配列を作成できる可能性があります。次のコードを使用して、非常に大きな 2 次元配列の作成をシミュレートできます。

$memoryLimit = ini_get('memory_limit'); // 获取 PHP 内存限制
$memoryLimitBytes = convertToBytes($memoryLimit); // 将内存限制转为字节数
$oneDimensionalArraySize = 1000000; // 一维数组大小为 1000000
$twoDimensionalArraySize = $memoryLimitBytes / $oneDimensionalArraySize; // 计算二维数组大小
$twoDimensionalArray = array_fill(0, $twoDimensionalArraySize, array_fill(0, $oneDimensionalArraySize, null)); // 创建二维数组

function convertToBytes($memoryLimit)
{
  $memoryLimit = trim($memoryLimit);
  $last = strtolower($memoryLimit[strlen($memoryLimit)-1]);
  $memoryLimit = substr($memoryLimit, 0, -1);
  switch($last)
  {
    case 'g':
      $memoryLimit *= 1024;
    case 'm':
      $memoryLimit *= 1024;
    case 'k':
      $memoryLimit *= 1024;
  }
  return $memoryLimit;
}
ログイン後にコピー

ここでは、まず PHP のメモリ制限を取得し、次にメモリ制限をバイト数に変換します。次に、2 次元配列のサイズを計算しますが、ここでは 1 次元配列のサイズが 1000000 であると仮定します。最後に、array_fill 関数を使用して、$twoDimensionalArraySize x $oneDimensionalArraySize の 2 次元配列を作成します。配列の初期値は null です。

上記のコードを実行すると、$twoDimensionalArraySize x $oneDimensionalArraySize の 2 次元配列が作成されます。この配列の要素は空の数値です。ただし、この 2 次元配列のサイズがメモリ制限を超え、プログラムがクラッシュする可能性があることに注意してください。

一般に、Java や C などのプログラミング言語は、大規模なデータ セットの処理に適しています。なぜなら、PHP はメモリをより適切に管理でき、PHP は Web アプリケーションの構築によく使用され、比較的小さなデータ セットを処理できるからです。もちろん、これは PHP を使用して大規模なデータセットを処理できないという意味ではなく、メモリとアルゴリズムを適切に使用する必要があるだけです。

以上がPHP の 2 次元配列には空の数値をいくつ格納できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート