重组数组到关联阵列



我有一个问题可以从普通数组(列表(构建关联数组。

我有这个:

   $ array = [           't1/t1sub',           't1/t2sub',           't2/t1sub',           't3/t1sub',           't1/t4sub',           't4',           't1/t2sub/t1subsub',           't1/t2sub/t2subsub'    ];

现在我想要这个:

   $ target = [        " T1" => [            " t1sub",            " t2sub" => [                    " t1subsub",                    " t2subsub"            ],,            " t4sub",        ],,        " T2" => [            " t1sub",        ],,        " T3" => [            " t1sub",        ],,        " T4"    这是给出的

感谢您的帮助。

您可以在已经开始的循环中执行此操作。

$target = [];
foreach ($array as $item) {
    list($key, $value) = explode('/', $item);
    if (!isset($target[$key])) {
        $target[$key] = [$value];
    } else {
        $target[$key][] = $value;
    }
}
var_dump($target);

您只需要将元素切成两半,然后将下半部分推成了由上半年键的子阵列。

代码(演示(

$array = ['t1/t1sub', 't1/t2sub', 't2/t1sub', 't3/t1sub', 't1/t4sub'];
foreach ($array as $v) {
    $x = explode("/", $v);
    $result[$x[0]][] = $x[1];
}
var_export($result);

输出:

array (
  't1' => 
  array (
    0 => 't1sub',
    1 => 't2sub',
    2 => 't4sub',
  ),
  't2' => 
  array (
    0 => 't1sub',
  ),
  't3' => 
  array (
    0 => 't1sub',
  ),
)

最新更新