在PHP

时间:2017-08-28 21:53:31

标签: php arrays

有很多方法可以修改数组,但这是修改以下多维数组的最佳方法吗?

此数组包含另外两个数组,类别1和2。

$arr = array(
        'category 1' => array(
                        'item 1' => 'lorem',
                        'item 2' => 'lorem',
                        'item 3' => 'lorem',
                        'item 4' => 'lorem',
                        ),

        'category 2' => array(
                        'item 1' => 'lorem',
                        'item 2' => 'lorem',
                        'item 3' => 'lorem',
                        'item 4' => 'lorem',
                        ),
);

如果我var_dump数组,它将看起来像这样。

array(2) {
  ["category 1"]=>
  array(4) {
    ["item 1"]=>
    string(5) "lorem"
    ["item 2"]=>
    string(5) "lorem"
    ["item 3"]=>
    string(5) "lorem"
    ["item 4"]=>
    string(5) "lorem"
  }
  ["category 2"]=>
  array(4) {
    ["item 1"]=>
    string(5) "lorem"
    ["item 2"]=>
    string(5) "lorem"
    ["item 3"]=>
    string(5) "lorem"
    ["item 4"]=>
    string(5) "lorem"
  }
}

那么,添加[类别3]和[子类别1]的最佳方式是什么,所以看起来如下所示。

array(2) {
  ["category 1"]=>
  array(4) {
    ["item 1"]=>
    string(5) "lorem"
    ["item 2"]=>
    string(5) "lorem"
    ["item 3"]=>
    string(5) "lorem"
    ["item 4"]=>
    string(5) "lorem"
  }
  ["category 2"]=>
  array(4) {
    ["item 1"]=>
    string(5) "lorem"
    ["item 2"]=>
    string(5) "lorem"
    ["item 3"]=>
    string(5) "lorem"
    ["item 4"]=>
    string(5) "lorem"
        ["subcategory 1"]=>
        array(2) {
        ["item 1"]=>
        string(5) "lorem"
        ["item 2"]=>
        string(5) "lorem"
  }
  ["category 3"]=>
  array(4) {
    ["item 1"]=>
    string(5) "lorem"
    ["item 2"]=>
    string(5) "lorem"
    ["item 3"]=>
    string(5) "lorem"
    ["item 4"]=>
    string(5) "lorem"

  }
}

2 个答案:

答案 0 :(得分:1)

生成需要添加的单维数组,并将它们简单地添加到第一个数组中:

$array['category_2']['subcategory_1'] = $subcategory_1_array;
$array['category_3'] = $category_3_array;

答案 1 :(得分:0)

我不认为有一个全能的"最好的"方式,但对于你的具体情况,这就足够了:

$arr = array(
    'category 1' => array(
                    'item 1' => 'lorem',
                    'item 2' => 'lorem',
                    'item 3' => 'lorem',
                    'item 4' => 'lorem',
                    ),

    'category 2' => array(
                    'item 1' => 'lorem',
                    'item 2' => 'lorem',
                    'item 3' => 'lorem',
                    'item 4' => 'lorem',
                    ),
);
$arr['category 3'] = array();

for($i = 1; $i < 5; ++$i){
    $arr['category 3']["item $i"] = 'lorem';
}