首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果数据是相同的PHP,如何创建foreach

如果数据是相同的PHP,如何创建foreach
EN

Stack Overflow用户
提问于 2015-04-21 04:21:59
回答 2查看 159关注 0票数 1

我有一个像这样的数据库数组

代码语言:javascript
复制
array(
(int) 0 => array(
    'B' => array(
        'company' => 'KC ACEH'
    ),
    'User' => array(
        'company' => 'KCP ACEH DARUSSALAM'
    ),
    (int) 0 => array(
        'jumlah' => null,
        'jumbuy' => '50990',
        'admin' => '50010'
    )
),
(int) 1 => array(
    'B' => array(
        'company' => 'KC LANGSA'
    ),
    'User' => array(
        'company' => 'KCP ACEH ULEE KARENG'
    ),
    (int) 0 => array(
        'jumlah' => null,
        'jumbuy' => '65000',
        'admin' => '5000'
    )
),
(int) 2 => array(
    'B' => array(
        'company' => 'KC ACEH'
    ),
    'User' => array(
        'company' => 'KCP ACEH DARUSSALAM'
    ),
    (int) 0 => array(
        'jumlah' => null,
        'jumbuy' => '98990',
        'admin' => '2010'
    )
)

)

数组行零和行一是同一个月,数组第二行是不同的月份。所以,如果用户‘->’公司的数据是相同的,我想用foreach来实现。这些数据将被输出

代码语言:javascript
复制
array(
(int) 0 => array(
    'B' => array(
        'company' => 'KC ACEH'
    ),
    'User' => array(
        'company' => 'KCP ACEH DARUSSALAM'
    ),
    (int) 0 => array(
        'jumlah' => null,
        'jumbuy' => '50990',
        'admin' => '50010'
    ),
    (int) 1 => array(
        'jumlah' => null,
        'jumbuy' => '98990',
        'admin' => '2010'
    )
),
(int) 1 => array(
    'B' => array(
        'company' => 'KC LANGSA'
    ),
    'User' => array(
        'company' => 'KCP ACEH ULEE KARENG'
    ),
    (int) 0 => array(
        'jumlah' => null,
        'jumbuy' => '65000',
        'admin' => '5000'
    )
)

)

我在搜索谷歌,但我不明白。有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-21 04:30:52

如果来自['B']['company']的值是唯一的,那么您可以使用它作为键对那些共享这些值的数组批进行分组,然后放到另一个容器中。

在初始容器推送时,只需将整个批处理与指定的密钥一起推送即可。如果它已经存在,只需获取当前批处理的最后一个元素(数字索引1)并将其推入组。

代码语言:javascript
复制
$data = array();
foreach($array as $values) {
    if(!isset($data[$values['B']['company']])) {
        // initialize group
        $data[$values['B']['company']] = $values;
    } else {
        $last_element = array_pop($values); // get last element
        $data[$values['B']['company']][] = $last_element; // push
    }
}

$data = array_values($data); // re index

样本输出

票数 2
EN

Stack Overflow用户

发布于 2015-04-24 06:23:50

代码语言:javascript
复制
 foreach($report_posts as $values) {
        if(!isset($data[$values['User']['company']])) {
            $data[$values['User']['company']] = $values;

            $data1 = array(***OUTPUT JUMBUY***);
            $series = $this->HighCharts->addChartSeries();
            $series->addName($values['User']['company'])->addData($data1);
            $mychart->addSeries($series);

        } else {
            $last_element = array_pop($values);
            $data[$values['User']['company']][] = $last_element;

        }
    }
    $data = array_values($data);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29762858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档