首页 > 解决方案 > 从单个数组中创建多个 PHP 数组并将这些新数组存储到新的单个数组中

问题描述

这可能有点笼统,但我会尽力解释我的问题。

所以我有这种类型的关联数组:

 Array
 (
  [ICO_0] => checked
  [Investment_0] => checked
  [Investment_1] => checked
  [Marketing_1] => checked
)

我想做的是根据附加到键末尾的数字( 0, 1 ... )将它分成多个数组。基本上我想让一个新数组看起来像这样:

Array(
  Array(
    [ICO_0] => checked
    [Investment_0] => checked
    [Token Sale_0] => checked       
  ),
 Array(
    [Investment_1] => checked
    [Marketing_1] => checked
  )  
)

我试过用 array_chunk 解决这个问题,但无法让它工作。

我需要这个输出,因为我想根据他们持有的项目对这些嵌套数组进行排序,从最高数量的项目开始。

谢谢!

标签: phparrayswordpress

解决方案


您可以使用几种不同的方法来完成此操作。如果您知道总会有一个下划线,则一种方法是循环并分解键名,抓住最后一个数字,并将其用作您的索引:

$results =  [
    "ICO_0" => "checked",
    "Investment_0" => "checked",
    "Investment_1" => "checked",
    "Marketing_1" => "checked",
    "Investment_2" => "checked",
    "Marketing_2" => "checked"
];

foreach($results as $key => $value){
    $ex = explode('_', $key);
    $new_result[end($ex)][$key] = $value;
}

对我来说返回以下内容:

array:3 [▼
    0 => array:2 [▼
        "ICO_0" => "checked"
        "Investment_0" => "checked"
    ]
    1 => array:2 [▼
        "Investment_1" => "checked"
        "Marketing_1" => "checked"
    ]
    2 => array:2 [▼
        "Investment_2" => "checked"
        "Marketing_2" => "checked"
    ]
]

推荐阅读