Как динамически добавлять индекс и значения в массив с помощью foreach PHP - PullRequest
0 голосов
/ 14 мая 2018

У меня есть этот массив и значение, похожее на это ...

'FirstBranch'

Array => (
     ['January'],
     ['February'],
     ['March']
)

И мне нужно создать другой массив со следующей структурой ...

        ['FirstBranch'] => array(
                      ['January'] => array( 
                             'Value',
                             '%',
                             'Unit'
                            ),
                      ['February'] => array(
                             'Value',
                             '%',
                             'Unit'
                            ),
                      ['March'] => array(
                             'Value',
                             '%',
                             'Unit'
                            ),
                     )

Я пыталсяпротолкнуть значения через foreach, но это не работает.Код, который я выглядел следующим образом ...

foreach( $months as $month ){
    $resultArray['FirstBranch'] = array( 
                   $month => array('Value',
                                   '%',
                                   'Unit' 
                                )
                            );
}

Когда я делаю это, выдает ошибку, и она просто не работает ... Есть идеи?

Ответы [ 4 ]

0 голосов
/ 14 мая 2018

Я думаю, это то, что вы ищете:

<?

$months=array('Jan','Feb','Mar','Apr','May','Jun',...);

$FirstBranch=array();
foreach($months as $month ) { 
    $FirstBranch[$month]=array('Value', '%', 'Unit');

}
var_dump($FirstBranch);
?>

Что дает вам:

   array(12) {
  ["Jan"]=>
  array(3) {
    [0]=>
    string(5) "Value"
    [1]=>
    string(1) "%"
    [2]=>
    string(4) "Unit"
  }
  ["Feb"]=>
  array(3) {
    [0]=>
    string(5) "Value"
    [1]=>
    string(1) "%"
    [2]=>
    string(4) "Unit"
  }

А если вы хотите получить доступ к 3-му значению в массиве Jan:

echo $FirstBranch[Jan][2];

Который напечатал бы: Unit

Cheers, -Joe

0 голосов
/ 14 мая 2018

Вам необходимо использовать названия месяцев в качестве ключей, связанных с FirstBranch. Попробуйте:

foreach( $months as $month ){
    $resultArray['FirstBranch'][$month] = array( 
                   'Value',
                   '%',
                   'Unit'
                    );
}
0 голосов
/ 14 мая 2018

Есть встроенная функция PHP, array_fill_keys, которая может упростить это.

$resultArray['FirstBranch'] = array_fill_keys($months, ['Value', '%', 'Unit']);
0 голосов
/ 14 мая 2018

Вы можете добавить свой массив, используя для каждого цикла

<?php

 $array = array('January', 'February', 'March');

 $array2 = array('Value', '%', 'Unit');

 $newarray = array();
 foreach ($array as $key) {
   $newarray['FirstBranch'][$key] = $array2;
 }
 print_r($newarray);

Демо Здесь

...