如何在PHP中初始化多维数组预设键

如何在PHP中初始化多维数组预设键,php,multidimensional-array,initialization,Php,Multidimensional Array,Initialization,我有一个常数定义为: define('CONFIG_CODES', 'v1,v2,v3'); 我想使用常量中定义的配置代码作为数组键来初始化多维数组。我尝试了array\u fill\u keys()。我想要初始化的原因是为了避免PHP脚本结果中的未定义索引:v2和未定义偏移量:0 以下是我希望初始化的样子: Array ( [v1] => Array ( [0] => [1] =>

我有一个常数定义为:

define('CONFIG_CODES', 'v1,v2,v3');
我想使用常量中定义的配置代码作为数组键来初始化多维数组。我尝试了
array\u fill\u keys()。我想要初始化的原因是为了避免PHP脚本结果中的
未定义索引:v2
未定义偏移量:0

以下是我希望初始化的样子:

Array
(
    [v1] => Array
        (
            [0] => 
            [1] => 
        )

    [v2] => Array
        (
            [0] => 
            [1] => 
        )

    [v3] => Array
        (
            [0] => 
            [1] => 
        )

)
我的尝试:


$serviceTimes=数组填充键(数组(配置码),”

创建一个空的
$initialized
数组,然后使用分解的值作为关联键,循环遍历常量值的分解结果:

define('CONFIG_CODES', 'v1,v2,v3');
$initialized = array();
foreach(explode(',', CONFIG_CODES) as $val){
    $initialized[$val] = array(
        'val1',
        'val2'
    );
}

创建一个空的
$initialized
数组,然后使用分解的值作为关联键,循环遍历常量值的分解结果:

define('CONFIG_CODES', 'v1,v2,v3');
$initialized = array();
foreach(explode(',', CONFIG_CODES) as $val){
    $initialized[$val] = array(
        'val1',
        'val2'
    );
}

这可能是你要找的东西

define( 'CONFIG_ARRAY', 'v1, v2, v3' );
define( 'VALUES', 2 );

function makeArray()
{
    $array = array();
    $versions = explode( ',', CONFIG_ARRAY );
    foreach ( $versions as $version )
    {
        $array[$version] = array();
        for( $i = 0; $i < VALUES; $i++ )
        {
            $array[$version][$i] = '';
        }
    }
    return $array;
}
define('CONFIG_ARRAY','v1、v2、v3');
定义(‘值’,2);
函数makeArray()
{
$array=array();
$versions=explode(“,”,配置数组);
foreach($versions作为$version)
{
$array[$version]=array();
对于($i=0;$i

这将是一个生成器函数,但您可以从函数中删除代码并使用它生成阵列。

这可能与您正在寻找的类似

define( 'CONFIG_ARRAY', 'v1, v2, v3' );
define( 'VALUES', 2 );

function makeArray()
{
    $array = array();
    $versions = explode( ',', CONFIG_ARRAY );
    foreach ( $versions as $version )
    {
        $array[$version] = array();
        for( $i = 0; $i < VALUES; $i++ )
        {
            $array[$version][$i] = '';
        }
    }
    return $array;
}
define('CONFIG_ARRAY','v1、v2、v3');
定义(‘值’,2);
函数makeArray()
{
$array=array();
$versions=explode(“,”,配置数组);
foreach($versions作为$version)
{
$array[$version]=array();
对于($i=0;$i


这将是一个生成器函数,但您可以从函数中删除代码并使用它生成数组。

您可以定义
'CONFIG\u CODES'
作为下面构造的数组?嗯,我更喜欢用PHP编程。我已经分解了常量,我有一个
foreach()
来识别各个键。我只是不知道如何获取每个配置代码,并将其设置为数组键来初始化@ICE76。您能展示一下您初始化这些键的尝试吗?我可以帮忙@OPI修改我的OQ@ICE76你差不多就到了,使用
array\u fill\u键(explode(',',CONFIG_code),array(null,null))
()就可以了(调整
数组(…)
部分,以你想要的作为每个数组项的值)。您可以将
'CONFIG\u CODES'
定义为一个数组,就像您在下面构造它一样?嗯,我更喜欢用PHP编程。我已经分解了常量,我有一个
foreach()
来识别各个键。我只是不知道如何获取每个配置代码,并将其设置为数组键来初始化@ICE76。您能展示一下您初始化这些键的尝试吗?我可以帮助@OPI修改我的OQ@ICE76你几乎就到了,使用
array\u fill_键(explode(',',',CONFIG_code),array(null,null))
()可以完成这个任务(调整
数组(…)
部分,以你想要的值作为每个数组项的值)。我很确定我尝试过了,仍然得到了关于索引和偏移量的PHP警告,但我会再试一次。感谢@commanderzildt在我的机器上正确输出上述示例。如果你收到一条错误消息,请告诉我它是什么。这条消息有效。我想我忽略了初始的
$initialized=array()。我知道这一点,因为我不记得在我的一次尝试中有过。非常感谢你的帮助!!我很确定我试过了,但仍然得到了关于索引和偏移量的PHP警告,但我会再试一次。感谢@commanderzildt在我的机器上正确输出上述示例。如果你收到一条错误消息,请告诉我它是什么。这条消息有效。我想我忽略了初始的
$initialized=array()。我知道这一点,因为我不记得在我的一次尝试中有过。非常感谢你的帮助!!谢谢@Ice76。这一个可能有效,但我测试并使用了另一个答案。它也更紧凑(更轻)。谢谢@Ice76。这一个可能有效,但我测试并使用了另一个答案。它也更紧凑(更轻)。