【问题标题】:How to map or combine multiple array into one array?如何将多个数组映射或组合成一个数组?
【发布时间】:2019-09-20 07:30:47
【问题描述】:

代码:

<?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 中。那么,我该如何解决呢?请帮帮我。

谢谢

【问题讨论】:

标签: php arrays codeigniter


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    使用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
            )
    
    )
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2021-08-05
      • 1970-01-01
      相关资源
      最近更新 更多