Как отобразить или объединить несколько массивов в один массив? - PullRequest
1 голос
/ 20 сентября 2019

код:

<?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.Теперь я хочу объединить или отобразить весь массив, т.е. array1, array2, array3, который находится внутри цикла foreach, в один array.Итак, как я могу решить это?Пожалуйста, помогите мне.

Спасибо

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

это не специфично для codeigniter.В php вы можете объединить несколько массивов, используя array_merge () встроенную функцию

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

0 голосов
/ 20 сентября 2019

Слияние двух или более массивов с использованием 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
        )

)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...