Построение многомерного массива с вводом из 2 массивов - PullRequest
0 голосов
/ 26 февраля 2020

Отлично работает при создании уровня 1, но когда создается уровень 2, обновляется только первая буква индекса [1].

Код:

// Position [Level-1]
$taxonomy_id = [
  "id_no_1",
  "id_no_2",
  "id_no_3",
];

// Position [Level-2]
$titles = [
  "title_1",
  "title_2",
  "title_3",
];

$array = [];


for ($i = 0; $i < count($taxonomy_id); $i++) {

//Construct level-1
$array[] = $taxonomy_id["{$i}"];

//Construct level-2
$array["{$i}"]["{$i}"] = $titles["{$i}"];

}

print_r($array);

Результат:

(
    [0] => td_no_1
    [1] => it_no_2
    [2] => id_no_3
)

Требуемый результат:

Array
(
    [id_no_1] => Array
        (
            [0] => title_1
        )

    [id_no_2] => Array
        (
            [0] => title_2
        )

)

1 Ответ

1 голос
/ 26 февраля 2020

Вам лучше создать подмассивы в одном go, вы также можете упростить "{$i}" с помощью $i ...

for ($i = 0; $i < count($taxonomy_id); $i++) {
    $array[$taxonomy_id[$i]] = [$titles[$i]];
}
...