2

PHP(5.3)の(semi-2、semi-3d配列だと思います)にいくつかのデータを保存したいです。私がする必要があるのは、次のように各フロアに関するデータを保存することです。

Floor    Num of Spots    Handicap          Motorcyle        Other
1         100            array(15,16,17)    array (47,62)   array (99,100)
2         100            array(15,16,17)    array (47,62)   array (99,100)
and on

問題は、ハンディキャップ+モーターサイクル+その他がintの場合、データを2次元配列に格納できることです。ただし、そうではありません。そのため、最初の2列は2Dのみで、ほぼ3D配列のようなものを作成できると考えていました。

私が持っていたもう1つの考えは、名前を付けて保存する代わりに、2D配列を作成し、列3、4、および5を作成することでした。

array(15,16)
//save like
1516

次に、2桁で分割します(1桁の配列番号の前には0が付きます)。ただし、文字列の長さの制限について疑問に思っています。array(100、104)のように、配列内の3桁の長さの数値に移動することにした場合、多くの数値を格納する必要があるためです。私はすぐに最大値を超えるつもりだと思っています。

編集1 私はオマールの答えがとても好きですが、データを引き出す方法がわかりません。

4

4 に答える 4

5

それらを?D配列として格納することもできますが、検討したい別のアプローチがあります。

$stuff = array (
  'floor1' => 
  array (
    'NumSpots' => 100,
    'handicap' => array (15,16,17),    
    'motorcycle' => array (47, 62),
    'other' =>  array (99, 100),
    ),
  ),
  'floor2' => 
    'NumSpots' => 100,
    'handicap' => array (15,16,17),    
    'motorcycle' => array (47, 62),
    'other' => array (99, 100),
    ),
  )
)

そうすれば、次のような意味のある名前を使ってアクセスできます。

$stuff['floor1']['motorcycle'][2]
于 2012-09-18T21:37:32.963 に答える
2

PHPでは、配列に名前付きキーを設定できます。配列内の各要素は異なるタイプを持つことができるので、

$floors = array(
    1 => array(
            'num_spots' => 100,
            'handicap' => array(15,16,17)
        ),   

    2 => array(
            'num_spots' => 100,
            'handicap' => array(15,16,17),
            'motorcycle' => array (47,62)
        )
);

等...

于 2012-09-18T21:32:20.013 に答える
1

あなたはまさにそれをすることができます。例:

$a = array();
$a[1] = array(
    'spots' => 100,
    'handicap' => array(5,3,5)
);
$a[2] = array(
    'spots' => 50,
    'handicap' => array(1,3,20)
);
var_dump($a);

出力:

array
  1 => 
    array
      'spots' => int 100
      'handicap' => 
        array
          0 => int 5
          1 => int 3
          2 => int 5
  2 => 
    array
      'spots' => int 50
      'handicap' => 
        array
          0 => int 1
          1 => int 3
          2 => int 20

フロア番号に配列インデックスを使用するか、そのための個別のキー/値を使用できます。

于 2012-09-18T21:30:16.003 に答える
1

何かのようなもの...

$floors = array();
$floors[1] => array(
    Spaces => 100,
    Handicapped => array(15, 16, 17),
    Motorcycle => array(47, 62),
    Other => array (1, 2, 3, ..., n)
)

次に、値を次のように取得できます...

$Floor1Spaces = $floors[1]['Spaces']; //An integer
$Floor1HAndicapped = $floors[1]['Handicapped']; //A 1-dimensional array of integer
于 2012-09-18T21:32:51.400 に答える