Как добавить значения из одного массива в другой - PullRequest
1 голос
/ 16 июня 2020

У меня есть два массива со следующей структурой

array
  'main' => array
     'firstYearStudents' => array
        0 => '10'
        1 => '12'

     'secondYearStudents' => array
        0 => '8'
        1 => '9'

     'programCode' => array
        0 => '03.02.01'
        1 => '03.01.01'

     'educationProgramName' => array
        0 => 'Mathematics'
        1 => 'Physics'

  'total' => array
     'totalFirstYear' => '22'
     'totalSecondYear' => '17'
     'programCode' => '-'
     'totalEducationProgramName' => 'Total Directions'

Тогда требуемая структура должна выглядеть примерно так

array
  'main' => array
     'firstYearStudents' => array
        0 => '10'
        1 => '12'
        2 => '22'

     'secondYearStudents' => array
        0 => '8'
        1 => '9'
        2 => '17'

     'programCode' => array
        0 => '03.02.01'
        1 => '03.01.01'
        2 => '-'

     'educationProgramName' => array
        0 => 'Mathematics'
        1 => 'Physics'
        2 => 'Total Directions'

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

$i = 0;
foreach ($studentsEditInfo['main'] as $values) {
    $studentsEditInfo['main'] = array_merge($values, $studentsEditInfo['total'][$i]);
    $i++;
}

Я не знаю, как получить доступ к индексам моего «общего» массива внутри foreach l oop моего «основного» массива.

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Если порядок вашего «total» -Array всегда остается таким, вы можете преобразовать итоговую сумму в массив numeri c перед добавлением значений.

Вот так

$arr["total" ] = ["a" => 1,"b" => 2, "c" => 3];
$arrNumeric = [];
foreach ($arr["total"] as $item) {
  $arrNumeric []= $item;
}

После этого вам просто нужно запустить этот код, чтобы добавить значения массива

$i = 0;
foreach ($studentsEditInfo['main'] as $values) {
    $values []= $arrNumeric[$i];
    $i++;
}

Я не тестировал это, кстати.

0 голосов
/ 16 июня 2020
$total = [];
foreach ($studentsEditInfo['main']['total'] as $keyTotal => $valueTotal) {
            $total[] = $valueTotal;
        }

        unset($studentsEditInfo['main']['total']);

        $index = 0;
        foreach ($studentsEditInfo['main'] as $keyMain => $valueMain) {
            $studentsEditInfo['main'][$keyMain][] = $total[$index];
            if ($index > count($studentsEditInfo['main'])) {
                continue;
            }
            $index++;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...