【问题标题】:Combining two arrays from two tables into a single array using a common value使用公共值将两个表中的两个数组组合成一个数组
【发布时间】:2015-03-14 13:54:28
【问题描述】:

我正在尝试组合从 2 个不同的表 - 'articles' 和 'article_categories' 生成的数组。 'article_categories' 的输出是:

Array
(
[0] => Array
    (
        [id] => 0
        [title] => local
    )

[1] => Array
    (
        [id] => 1
        [title] => politics
    )

[2] => Array
    (
        [id] => 2
        [title] => economics
    )
)

功能代码为:

public function newsGetCategoryList() {
        $result = $this->db->select('SELECT * FROM article_categories ORDER BY id');   
        return $result;
}

“文章”的输出是:

Array
(
[0] => Array
    (
        [id] => 0
        [title] => Article 1
        [content] => content
        [category] => local
    )

[1] => Array
    (
        [id] => 1
        [title] => Article 2
        [content] => content
        [category] => local
    )

[2] => Array
    (
        [id] => 2
        [title] => Article 2
        [content] => content
        [category] => local
    )
)

功能代码为:

public function newsGetCategoryArticles($category) {
       $result = $this->db->select('SELECT * FROM articles WHERE category_id = :category', array('category' => $category));            
       return $result;
    }

我需要将 'articles' 数组插入 'article_categories' 以便输出变为:

Array
(
[0] => Array
    (
        [id] => 0
        [title] => local
        [articles] => Array
        (
        [0] => Array
            (
               [id] => 0
               [title] => Article 1
               [content] => content
               [category] => local
            )

        [1] => Array
            (
               [id] => 1
               [title] => Article 2
               [content] => content
               [category] => local
            )

        [2] => Array
            (
               [id] => 2
               [title] => Article 2
               [content] => content
               [category] => local
            )
        )
)
[1] => Array
    (
        [id] => 1
        [title] => politics
    )

[2] => Array
    (
        [id] => 2
        [title] => economics
    )
)

换句话说,如果文章的类别值与类别的标题匹配,则文章应该在类别数组中。

我尝试在“article_categories”的 foreach 循环中应用 array_push,但我只为每个类别条目获取了一个单独的数组,而不是整个数组。我不知道如何处理这个问题。

谢谢

【问题讨论】:

    标签: php mysql arrays oop


    【解决方案1】:

    自己找到了解决方案。不得不改变 newsGetCategoryList()

    public function newsGetCategoryList() {
            $array = $this->db->select('SELECT * FROM article_categories ORDER BY id');
            $result = array();
            foreach ($array as $value) {
                $articles = $this->newsGetCategoryArticles($value['title']);
                array_push($value, $articles);
                $result[] = $value;                
            } 
            return $result;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2011-06-08
      • 2022-01-04
      • 2017-09-04
      • 2019-01-06
      • 2023-03-19
      相关资源
      最近更新 更多