Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果数据与PHP相同,如何创建foreach_Php_Arrays_Multidimensional Array - Fatal编程技术网

如果数据与PHP相同,如何创建foreach

如果数据与PHP相同,如何创建foreach,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我从数据库中得到了这样一个数组 array( (int) 0 => array( 'B' => array( 'company' => 'KC ACEH' ), 'User' => array( 'company' => 'KCP ACEH DARUSSALAM' ), (int) 0 => array( 'jumlah' => null, 'jumb

我从数据库中得到了这样一个数组

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'
    )
)
)

数组第0行和第1行是同一月份,数组第2行是不同月份。因此,如果名称“User”->“Company”的数据相同,我想用foreach实现。这些数据将被输出

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'
    )
)
)


我在谷歌上搜索,但我不明白。有人能帮我吗?

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

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

$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

@faizal3696当然很高兴能帮上忙。对不起,先生,我又有个问题。因此,这些数据将被制成一个图表,数据取自用户数据和jumbuy。我已经成功地显示了用户数据,但是我还不能显示那个巨大的数据。请帮助执行jumbuy
 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);