Php 如何在foreach循环中创建多维关联数组?

Php 如何在foreach循环中创建多维关联数组?,php,Php,我想创建一个如下所示的数组 $appsByOs = Array( osName1 =>Array(0=>app1,1=>app2) osName2 =>Array(0=>app1,1=>app2) etc..... ) 如何在foreach循环中执行此操作 foreach($osInstanceNames as $osInstanceName

我想创建一个如下所示的数组

 $appsByOs = Array(
                  osName1 =>Array(0=>app1,1=>app2)
                  osName2 =>Array(0=>app1,1=>app2)
                  etc.....
  )
如何在foreach循环中执行此操作

  foreach($osInstanceNames as $osInstanceName){
                    $appNames(array of app names for current os)

            }

谢谢

您需要做的就是这样

 $appsByOs = Array();
 foreach($osInstanceNames as $osInstanceName){
                     $appsByOs[$osInstanceName] = $appNames;

 }

恢复上一篇文章,并为一个操作系统实例添加多个应用程序的可能性

 $appsByOs = Array(); 
 foreach($osInstanceNames as $osInstanceName){ 
                     $appsByOs[$osInstanceName][] = $appNames; 

 } 

这是一个几乎被删除但不完全是Anigel的打字错误,当第二个应用程序添加到阵列中时会发生什么?目前,您将使用此代码覆盖以前的应用程序。如果“应用程序”指的是appNames,那么在问题中,这被指定为一个数组,而不是需要循环,确实,但您不理解我所说的<代码中的code>$appNames将覆盖以前分配给
$appsByOs[$osistancename]
的任何任务。Ouput将只由循环分配最后一个AppName,而不是AppName数组。对不起,Anigel,我应该学会阅读这个问题!你说得对。虽然我认为他实际上想要动态创建数组……请你澄清一下你想要动态创建什么。是动态创建$appsByOs,而您已经有了填充$appNames的方法。如果是$appNames,请您提供$appNames数据源的一些线索。它正在动态创建$appsByOs$appNames已由根据每个osInstanceName运行的查询填充。下面我的回答将创建$appsByOs,用当前osName动态填充osName键,并分配$appNames中的任何值。它没有为每个操作系统使用不同的数据填充$AppName。您需要调用一个函数,将每个操作系统的不同数据转换为$AppName,否则每个操作系统都会列出相同的应用程序。这并不能回答问题。这将导致osName1=>Array(0=>Array(app1),1=>Array(app2))的输出问题显示$appNames已经是一个数组,并且还依赖于每个操作系统在$osistancenames中多次列出