php - PHP如何将关联数组(不是它的值)推送到另一个数组?
问题描述
问题如下:我正在迭代一些包含带有 foreach 循环的工作站的保留的数据。在这个循环中,我正在创建一个如下所示的关联数组:
$test = [
"id" => $id,
"name" => $forename." ".$surname,
"startDate" => date("Y-m-d", strtotime($startDate)-86400),
"endDate" => date("Y-m-d", strtotime($endDate)),
"color" => $color,
];
然后将该数组插入到数值数组中(也可以是关联的,但数值会更容易)。我试过array_merge,但它似乎试图将键及其值插入到目标数组中。这带来了一个问题,因为在每次迭代期间密钥总是相同的。因此,在每次迭代期间,旧的键和值都会被覆盖。此外,无论如何,我绝对需要这些阵列来保持阵列,这将使我以后的生活更轻松。
我试过 array_push 但这似乎不起作用,我得到一个 NULL 响应。然后我尝试了array_merge_recursively,这里至少保留了数据,但是它被拆分为由前一个关联键索引的数字数组,用数字键引用里面的数据。这也不是想要的结果。
那么我怎样才能得到这个结果:
$numericalArray = [[associativeArray1], [associativeArray2], [associativeArray3]]; //and so on
为了进一步了解我的方法及其导致的问题,这里是包含 foreach 循环的函数。注释代码包含我已经尝试过但没有成功的方法:
function createCalendarMarkupWithoutActiveDauerreservierung($connection, $allReservierungenData){
$calendarData = [];
//$calendarData = ["1"];
foreach($allReservierungenData as $reservierungData){
$color = setColorForDaterange($reservierungData['status']);
$username = retrieveReservierungUser($connection, $reservierungData["benutzer"]);
//$calendarData .= finalizeMarkupWithoutActiveDauerreservierung($reservierungData["id"], $username["vorname"], $username["name"], $reservierungData["anfang"], $reservierungData["ende"], $color);
$calendarDataSegment = finalizeMarkupWithoutActiveDauerreservierung($reservierungData["id"], $username["vorname"], $username["name"], $reservierungData["anfang"], $reservierungData["ende"], $color);
//$calendarData = array_merge($calendarData, ["2"]);
//$calendarData = array_merge($calendarData, $calendarDataSegment);
//$calendarData = array_push($calendarData, $calendarDataSegment);
//$calendarData = $calendarData + $calendarDataSegment;//array_merge($calendarData, $calendarDataSegment);
$calendarData = array_merge_recursive($calendarData, $calendarDataSegment);
}
return $calendarData;
}
解决方案
只需将每个数组附加到您的结果中:
<?php
$one = [
'id' => 'one',
'num' => 1
];
$result[] = $one;
$two = [
'id' => 'two',
'num' => 2
];
$result[] = $two;
var_export($result);
输出:
array (
0 =>
array (
'id' => 'one',
'num' => 1,
),
1 =>
array (
'id' => 'two',
'num' => 2,
),
)
推荐阅读
- python - 烧瓶python查询语法
- javascript - 将组件动态加载到动态位置
- php - 无法将 blob 转换为图像?
- css - 在 Bootstrap 中订购 WordPress 小部件
- php - PHP:如果用户在某个页面上,编写一个指向不同链接的函数
- c++ - 运行程序时出现浮点异常
- java - Java DatagramSocket - 在一个数据包中发送多个值
- ios - Extensions 中的 NSObject 类有未定义的行为?
- php - 如何从基于 Mysql 的总销售额中的每个用户名 3 表中获取每个数据
- image - 在 Sonata Admin Symfony 4.2 中上传多个图像