Как создать многомерный массив из одного массива? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть такой массив:

    [0] => Array
        (
            [reserveid] => 12
            [description] => description 
            [amount] => 1000
            [startdate] => 2020-01-01 00:00:00
            [catid] => 8
            [catname] => child categoryname
            [parentid] => 3
            [parentname] => parent categoryname
        )

Резерв принадлежит либо дочерней категории, либо непосредственно родительской категории.

Я хочу создать массив, в котором все родители сгруппированы вместе. После этого все дочерние элементы сгруппированы вместе, а затем все резервы сгруппированы вместе.

Итак, мне нужен такой массив:

parentid -> catid -> reserveid -> (description, amount, startdate)

Я новичок в программировании, и я узнал для этого нужны массивы, но я не могу осмыслить эту процедуру. Может ли кто-нибудь помочь мне в этом мышлении? Я был бы очень признателен :)

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете l oop для элементов вашего массива и создать новый массив, ключи которого будут значениями, которые вы извлекаете.

$array = [
    ['parent' => 10, 'cat' => 5, 'reserve' => 1, 'foo' => 'Foo', 'bar' => 'bar'],
    ['parent' => 8, 'cat' => 3, 'reserve' => 1, 'foo' => 'Foo', 'bar' => 'bar'],
    ['parent' => 10, 'cat' => 5, 'reserve' => 1, 'foo' => 'Foo', 'bar' => 'bar'],
];
$newArray = [];
foreach($array as $arr) {
    $newArray[$arr['parent']][$arr['cat']][$arr['reserve']] = [
        'foo' => $arr['foo'],
        'bar' => $arr['bar']
    ];
}
var_export($newArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...