dpvomqeu396484 2015-12-16 09:30
浏览 84
已采纳

在foreach循环中循环的数组中添加item

So I have a foreach loop which loops though an array of items. The checkIfSubCategorie() returns an array with new items.

I want to place all these items in the $subcategorien array. This works good. The problem is that those items don't go through the initial foreach loop. Is this possible and if yes, how?

foreach($subcategorien as $subcat) {

    //make array with all subcategorien
    $newarray = self::checkIfSubCategorie($subcat);

    if(is_array($newarray)) {
        foreach($newarray as $a) {

            // add item to subcategorien
            array_push($subcategorien, $a);
        }
    }
}

This is the $subcategorien array before the initial foreach loop:

array(2) {
  [0]=> string(3) "701"
  [1]=> string(3) "702"
}

var_dump of $newarray:

array(1) {
  [0]=> string(1) "8"
}
bool(false)

This is the $subcategorien array after the foreach loop:

array(3) {
  [0]=> string(3) "701"
  [1]=> string(3) "702"
  [2]=> string(1) "8"
}

The result should be:

array(3) {
  [0]=> string(3) "701"
  [1]=> string(3) "702"
  [2]=> string(1) "8"
  [3]=> string(1) "9"
}
  • 写回答

3条回答 默认 最新

  • douwang4374 2015-12-16 09:58
    关注

    What you are looking for is called recursive function. Something like:

    function getCategoryChildren($categoryParentId, $categories = array()) {
        // TODO: query to get all the categories by their parents id
        while ($row = $stmt->fetch_assoc()) {
             $categories[] = $row['category_id'];
             $categories = getCategoryChildren($row['category_id'], $categories);
        }
        return $categories;
    }
    
    $allCategories = getCategoryChildren(0);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入