PHP - 按索引向多维数组添加多个项目

PHP - Add multiple items by index to multidimensional array

我有一个名为 $all_cats 的数组,它输出以下内容

Array(
    [0] => WP_Term Object(
        [term_id] => 386
        [name] => Ales
        [slug] => ales
        [term_group] => 0
        [term_taxonomy_id] => 386
        [taxonomy] => product_cat
        [description] => 
        [parent] => 384
        [count] => 10
        [filter] => raw
    )
    [1] => WP_Term Object(
        [term_id] => 385
        [name] => Beers
        [slug] => beers
        [term_group] => 0
        [term_taxonomy_id] => 385
        [taxonomy] => product_cat
        [description] => 
        [parent] => 384
        [count] => 10
        [filter] => raw
     )
)

我正在尝试将“term_id”和“名称”添加到索引多维数组中,这样我就可以输出以下内容 -

示例 A

Array
(
    [0] => Array
        (
            [parent_cats] => Array
                (
                    [id] => 385,
                    [name] => "Beers"
                )
        )
    [1] => Array
        (
            [parent_cats] => Array
                (
                    [id] => 386,
                    [name] => "Ales"
                )

        )
)

我尝试了以下方法,但似乎无法将每个项目添加到同一个键。我如何添加每个 term_id & 名称,以便它像示例 A 一样输出?

$full_cats = array();

foreach ($all_cats as $cat_term) {

    $parent_termID = $cat_term->term_id;
    $parent_title = $cat_term->name;

    // this doesnt work
    $full_cats[]['parent_cats']['id'] = $parent_termID;
    $full_cats[]['parent_cats']['name'] = $parent_title;

    // this doesnt work
    array_push($full_cats[]['parent_cats']['id'],$parent_termID);
    array_push($full_cats[]['parent_cats']['name'],$parent_title);

}

我如何添加每个 term_id & 名称以便输出像示例 A?

$full_cats = array();
$indx = 0;

foreach ($all_cats as $cat_term) {

  $parent_termID = $cat_term->term_id;
  $parent_title = $cat_term->name;

  // this doesnt work
  $full_cats[$indx]['parent_cats']['id'] = $parent_termID;
  $full_cats[$indx]['parent_cats']['name'] = $parent_title;
  $indx++;

  // this doesnt work
  // array_push($full_cats[]['parent_cats']['id'],$parent_termID);
  // array_push($full_cats[]['parent_cats']['name'],$parent_title);

}
$full_cats = array();

foreach ($all_cats as $cat_term) {
    $parent_termID = $cat_term->term_id;
    $parent_title = $cat_term->name;

    // this doesnt work
    $full_cats[]=array(
                      "parent_cats"=>array(
                                       "id"   => $parent_termID,
                                       "name" => $parent_title
                      )
                  );
}

上面的代码应该可以工作

  • 你需要学习multi和assoc数组的结构