Как отобразить многомерный массив - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть массив массивов, которые мне нужно объединить в другой массив.

Я попытался сопоставить его, сопоставить object_id и собрать все account_ids для указанного object_id, но все мои попытки даже не близкикак я пытаюсь выучить PHP

Это оригинальный массив

[0] => Array
    (
        [rank] => 0
        [id] => 6
        [object_id] => 3
        [account_id] => 13
    )

[1] => Array
    (
        [rank] => 1
        [id] => 7
        [object_id] => 3
        [account_id] => 565
    )

[2] => Array
    (
        [rank] => 2
        [id] => 1823
        [object_id] => 825
        [account_id] => 563
    )

[3] => Array
    (
        [rank] => 3
        [id] => 1824
        [object_id] => 825
        [account_id] => 564
    )

[4] => Array
    (
        [rank] => 4
        [id] => 1825
        [object_id] => 825
        [account_id] => 565
    )

[5] => Array
    (
        [rank] => 5
        [id] => 7187
        [object_id] => 3113
        [account_id] => 564
    )

[6] => Array
    (
        [rank] => 6
        [id] => 7188
        [object_id] => 3113
        [account_id] => 565
    )

Это желаемый результат

 [3] => [13, 565],
 [825] => [563, 564, 565],
 [3113] => [564, 565],

1 Ответ

2 голосов
/ 27 сентября 2019

Вам необходимо создать новый array с помощью индекса object_id.

Пример:

<?
$array = array(
  array('rank'=>0,'id'=>6,'object_id'=>3,'account_id'=>13),
  array('rank'=>1,'id'=>7,'object_id'=>3,'account_id'=>565),
  array('rank'=>2,'id'=>1823,'object_id'=>825,'account_id'=>563),
  array('rank'=>3,'id'=>1824,'object_id'=>825,'account_id'=>564),
  array('rank'=>4,'id'=>1825,'object_id'=>825,'account_id'=>565),
  array('rank'=>5,'id'=>7187,'object_id'=>3113,'account_id'=>564),
  array('rank'=>6,'id'=>7188,'object_id'=>3113,'account_id'=>565),
);

$newArray = array(); // initiliaze array
foreach ($array as $key => $value) {
  $newArray[$value['object_id']][] = $value['account_id']; // save it in group
}
echo "<pre>";
print_r($newArray); // result
?>

Пример выполнения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...