Как динамически добавить индекс и значения в массив с помощью foreach PHP

У меня есть этот массив и значение, подобное этому ...

'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' 
                                )
                            );
}

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

У вас странная структура массива, у вас есть массив, содержащий массивы ровно из одного элемента. Почему?

Spoody 14.05.2018 20:42

Вот я его поменял ...

Brandon Asaph 14.05.2018 20:47

Все то же самое ...

Spoody 14.05.2018 20:48

Это не то же самое, у этого массива больше измерений, и вот как он мне нужен, это не странно

Brandon Asaph 14.05.2018 20:51
Array => ( ['January'], ['February'], ['March'] ) это странный массив массивов. почему не Array => ( 'January', 'February', 'March' )
Spoody 14.05.2018 20:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
846
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

<?php

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

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

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

Demo Here

Спасибо! это именно то, что мне нужно! Понятия не имею, почему я не подумал об этом способе сделать это! Большое спасибо!

Brandon Asaph 14.05.2018 20:55

Рад помочь! :)

Muhammad Usman 14.05.2018 20:57

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

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

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

$resultArray['FirstBranch'] = array_fill_keys($months, ['Value', '%', 'Unit']);

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

<?

$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];

Что напечатает: Ед. изм

Ваше здоровье, -Джо

Другие вопросы по теме