現在の位置: ホーム> 最新記事一覧> デフォルト値のテーブル列構成配列を作成します

デフォルト値のテーブル列構成配列を作成します

M66 2025-06-06

バックグラウンド管理システム、コンテンツ管理プラットフォーム、またはデータ表示ページを開発する場合、テーブルの列構成を定義する必要があることがよくあります。たとえば、タイトル、アラインメント、各列に表示するかどうかなどの属性を設定する必要がある場合があります。これらのシナリオでは、 array_fill_keys()関数は、「デフォルト値」を持つ構成配列をすばやく構築し、構成の初期化プロセスを大幅に簡素化するのに役立ちます。

1。array_fill_keysとは何ですか?

PHPのarray_fill_keys()は、キー名の配列を統合されたデフォルト値と組み合わせて連想配列を生成する組み込み関数です。

文法:

 array_fill_keys(array $keys, mixed $value): array
  • $キー:使用するキー名の配列。

  • $値:各キーに指定されたデフォルト値。

2。実際のシナリオ:テーブル列構成配列を構築します

次のフィールドを表示する必要があるデータテーブルがあるとします。

 $columns = ['id', 'username', 'email', 'status', 'created_at'];

次のような、これらのフィールドに統一された初期構成を提供したいと考えています。

 [
    'title' => '',
    'align' => 'left',
    'visible' => true
]

array_fill_keysを使用した実装:

 <?php

$columns = ['id', 'username', 'email', 'status', 'created_at'];

$defaultConfig = [
    'title' => '',
    'align' => 'left',
    'visible' => true
];

// 使用array_fill_keysデフォルト値の構成配列を構築します
$configs = array_fill_keys($columns, $defaultConfig);

// 例:特定のフィールドのデフォルト構成をオーバーライドします
$configs['id']['title'] = 'シリアルナンバー';
$configs['username']['title'] = 'ユーザー名';
$configs['email']['title'] = '郵便';
$configs['status']['title'] = '州';
$configs['created_at']['title'] = '作成時間';

// 例输出
echo '<pre>';
print_r($configs);
echo '</pre>';

出力結果:

 Array
(
    [id] => Array
        (
            [title] => シリアルナンバー
            [align] => left
            [visible] => 1
        )

    [username] => Array
        (
            [title] => ユーザー名
            [align] => left
            [visible] => 1
        )

    ...
)

3。実際の条件と組み合わせる:フロントエンドページの読み取り構成

アドレスなど、これらの列構成をインターフェイスを介してフロントエンドに渡すと仮定します。

 https://m66.net/api/table/config

$ configsをJSONに変換して、フロントエンドに出力できます。

 header('Content-Type: application/json');
echo json_encode($configs);

フロントエンドは、これらの構成に基づいて動的にテーブルをレンダリングできます。

4。ヒント

  • 異なる構成構造を持つ複数のフィールドがある場合は、 array_map()を組み合わせたり、デフォルト値を手動でオーバーライドすることもできます。

  • さらに多重化を簡単にするために機能にカプセル化できます。

  • 注: array_fill_keys()は浅いコピーです。特定のキーの値を変更すると、元の$ defaultConfigは変更されませんが、複数のキーが同じ配列参照を共有する場合は注意してください( array_map() + array_merge( )によって回避できます)。