如何将多个数组映射或组合成一个数组?

时间:2019-09-20 07:30:47

标签: php arrays codeigniter

代码:

<?php

$this->db->select('*');
$this->db->from('student');
$this->db->order_by('studentID','DESC');
$sql1 = $this->db->get();
$result1 = $sql1->result_array();
foreach($result1 as $arr1)
{
    $array1[] = array(
                        'link' => 'student',
                        'values' => '<b>'.$arr1['create_username'].'</b> added new student <b>'.$arr1['name'].'</b>',
                        'dates' => $arr1['s_date']
                    );
}

$this->db->select('*');
$this->db->from('professor');
$this->db->order_by('professorID','DESC');
$sql2 = $this->db->get();
$result2 = $sql2->result_array();
foreach($result2 as $arr2)
{
    $array2[] = array(
                        'link' => 'professor',
                        'values' => '<b>'.$arr2['create_username'].'</b> added new professor <b>'.$arr2['name'].'</b>',
                        'dates' => $arr2['s_date']
                    );
}

$this->db->select('*');
$this->db->from('classes');
$this->db->order_by('classesID','DESC');
$sql3 = $this->db->get();
$result3 = $sql3->result_array();
foreach($result3 as $arr3)
{
    $array3[] = array(
                        'link' => 'classes',
                        'values' => '<b>'.$arr3['create_username'].'</b> added new course <b>'.$arr3['name'].'</b>',
                        'dates' => $arr3['s_date']
                    );
}

foreach(array_combine($array1,$array2,$array3) as $rowss)
{
    echo '<li>
            <a href="'.base_url().''.$rowss['link'].'">
                <p>'.$rowss['values'].'</p>
            </a>
            <a href="javascript:void(0)">'.time_elapsed_string($rowss['dates']).'</p>
        </li>';
}

在这段代码中,我仅对表student, professor and classes同时运行三个查询。现在,我想将所有数组(即,位于foreach循环内的array1, array2, array3)组合或映射到单个array中。那么,我该如何解决呢?请帮助我。

谢谢

2 个答案:

答案 0 :(得分:1)

这不是特定于代码点火器的。在php中,您可以使用array_merge()本机函数合并多个数组

$ finalArray = array_merge($ array1,$ array2,$ array3);

答案 1 :(得分:0)

使用array_merge()合并两个或多个数组

语法: array array_merge($array1, $array2, ......, $arrayn)

这是您的代码:

<?php

    $array1 = array(
      array(
        'link' => 'student',
        'values' => '1',
        'dates' =>  '01'
      ),
      array(
        'link' => 'student',
        'values' => '2',
        'dates' =>  '02'
      )
    );
    $array2 = array(
      array(
        'link' => 'professor',
        'values' => '1',
        'dates' =>  '01'
      ),
      array(
        'link' => 'professor',
        'values' => '2',
        'dates' =>  '02'
      )
    );
    $array3 = array(
      array(
        'link' => 'classes',
        'values' => '1',
        'dates' =>  '01'
      ),
      array(
        'link' => 'classes',
        'values' => '2',
        'dates' =>  '02'
      )
    );
    $res = array_merge($array1, $array2, $array3); 
    echo '<pre>';
    print_r($res);

?>

输出:

Array
(
    [0] => Array
        (
            [link] => student
            [values] => 1
            [dates] => 01
        )

    [1] => Array
        (
            [link] => student
            [values] => 2
            [dates] => 02
        )

    [2] => Array
        (
            [link] => professor
            [values] => 1
            [dates] => 01
        )

    [3] => Array
        (
            [link] => professor
            [values] => 2
            [dates] => 02
        )

    [4] => Array
        (
            [link] => classes
            [values] => 1
            [dates] => 01
        )

    [5] => Array
        (
            [link] => classes
            [values] => 2
            [dates] => 02
        )

)