简体   繁体   English

基于多维数组级别创建数组

[英]Creating Array Based off Multidimensional Array Levels

$array looks like this. $array看起来像这样。

Array
 (
     [CategoryID] => 4352
     [CategoryLevel] => 3
     [CategoryName] => Tags
 )

Array
 (
     [CategoryID] => 3243
     [CategoryLevel] => 2
     [CategoryName] => Actions
 )

Array
 (
     [CategoryID] => 2342
     [CategoryLevel] => 3
     [CategoryName] => Tags
 )

and so forth. 等等。

I've tried with a foreach loop 我已经尝试过foreach循环

$newarray = array();
foreach ($array as $key => $value) {
    $categorylevel = $value['CategoryLevel'];
    $newarray[][$categorylevel] = $categorylevel;
}

But the output looks like such: 但是输出看起来像这样:

Array
(
    [0] => Array
        (
            [3] => 4352
        )

    [1] => Array
        (
            [2] => 3243
        )

    [2] => Array
        (
            [3] => 2342
        )
        . . . . . . . .

Instead of my desired output of 而不是我想要的输出

Array
(
    [2] => Array
        (
            [0] => 3243
        )

    [3] => Array
        (
            [0] => 4352
            [0] => 2342
        )
        . . . . . . . .

How can I modify my foreach code to produce my desired output? 如何修改我的foreach代码以产生所需的输出?

Simply putting it in the $newarray key only brings back the last iterations of the Category Levels value

$newarray = array();
foreach ($array as $key => $value) {
    $categorylevel = $value['CategoryLevel'];
    $newarray[$categorylevel] = $categorylevel;
}

output: 输出:

. . . . . . . .
. . . . . . . .
[4] => 5967
[5] => 6756
[6] => 9933
)

You have a very simple mistake. 您有一个非常简单的错误。 This line is wrong. 这行是错误的。

$newarray[][$categorylevel] = $categorylevel;

It should instead be: 相反,它应该是:

$newarray[$categorylevel][] = $value['CategoryID'];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM