【问题标题】:Defining array in array in array - php在数组中定义数组 - php
【发布时间】:2015-09-13 12:56:39
【问题描述】:

我正在尝试动态创建以下数组:

$aSettings = array( "text"=> 
                  array( "icon_type" => 
                            array(
                                "name"=>"icon_type",
                                "method"=>"dropdown",
                                "option"=>"",
                                "default"=>""
                            ),
                          "column" => 
                            array(
                            "name"=>"column_count",
                            "method"=>"dropdown",
                            "default"=>"1"
                            )
                        )
                    )

我不确定如何将数组声明到数组中。

我有以下示例代码:

$aSettings=array();
$aSetting_type['text']=array();
$aSetting_name['icon_type']=array();
$aSetting_name['column']=array();
$aSetting_values1=array('name'=>'icon_type','method'=>'dropdown','option'=>'','default'=>'');
$aSetting_values2=array('name'=>'column_count','method'=>'dropdown','default'=>1);

我想我忽略了一些非常简单的东西,但是我如何将所有这些数组放在一起呢? 我希望能够从数组中调用一个值:

$aSettings['text']['column']['name'];

有什么想法吗?

【问题讨论】:

  • 了解输出,需要有关输入的更多详细信息,即使用var_dump 时当前如何显示数组或数据?动态阐述。而$aSetting_values2 不是数组,它一定会抛出错误。
  • 您对 setting_values 中的错字是正确的,我更正了。 var dump:array(1) { ["text"]=> array(2) { ["icon_type"]=> array(4) { ["name"]=> string(9) "icon_type" ["method" ]=> string(8) "dropdown" ["option"]=> string(0) "" ["default"]=> string(0) "" } ["column"]=> array(3) { [ "name"]=> string(12) "column_count" ["method"]=> string(8) "dropdown" ["default"]=> int(1) } } }
  • 使用您提供的 vardump,您应该能够以您想要的方式获取值,假设 var_dump 是数组 $aSettings,所以 echo $aSettings['text']['column']['name']; 并且示例代码不是动态的,您已经手动写入了所有值,所以我们不知道动态发生了什么。

标签: php arrays indexing


【解决方案1】:

你可以这样做:

$aSettings['text']['icon_type'] = $aSetting_values1;
$aSettings['text']['column'] = $aSetting_values2;

如果你需要更动态的,你可以像这样使用变量:

$type = 'text';
$name1 = 'icon_type';
$aSettings[$type][$name1] = $aSetting_values1;

【讨论】:

    【解决方案2】:

    收集数组是从低到高的顺序,这样很容易收集而不会混淆,例如

    $icon_type = array(
      "name"=>"icon_type",
      "method"=>"dropdown",
      "option"=>"",
      "default"=>""
    );
    
    $column =  array(
      "name"=>"column_count",
      "method"=>"dropdown",
      "default"=>"1"
    );
    
    $text = array( 
      "icon_type" => $icon_type,
      "column" => $column
    );
    
    $aSettings = array(
      "text"=> $text
    );
    

    一旦您收集到这样的数组,您就可以轻松访问数组中的任何元素,即echo $aSettings['text']['column']['name'];

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 1970-01-01
      • 2021-07-09
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多