Php Merge То же имя Значения - PullRequest
0 голосов
/ 04 марта 2019

Я получаю это как вывод

Department  Employee Name   Employee Code   
Sales   Ganeshmurthy    264 
Sales   AZIM ahmed KHAN 2012    
Sales   DHANABAL    231 04-03-2019  
Service RAVIKIRAN   2003    04-03
Manufacturing   RAJAVARMAN  2073    04-03-2019  09:20   1h 10m
Manufacturing   MEGALA  332 04-03-2019  08:14   0h 4m
Manufacturing   SABARI  333 04-03-2019  08:13   0h 3m
Manufacturing   Sasi    1001    04-03-2019  08:16   0h 6m
Manufacturing   FRANCIES XAVIER 136 04-03-2019  08:13   0h 3m
Manufacturing   MANIKANDAN.V    151 04-03-2019  08:15   0h 5m

Я получаю это в формате td, мне нужно объединить дубликаты в один?У меня есть массив из нескольких отделов, и мне нужно объединить одни и те же названия отделов в один массив.Например, если есть department1, department1, department1, повторяющиеся n раз.Мне нужно объединить его в один массив как department1.Как я могу добиться этого? Мне нужно показать это в таблице - т. Д. Таким образом, департаменты не должны повторяться

[0] => Array
        (
            [department_id] => 15
            [department_name] => R&D
            [name] => SUBRAMANIAN
            [code] => 101
            [clockin] => 
            [late] => 
            [date] => 1970-01-01
        )

    [1] => Array
        (
            [department_id] => 3
            [department_name] => Manufacturing
            [name] => RAVI
            [code] => 103
            [clockin] => 
            [late] => 
            [date] => 1970-01-01
        )

    [2] => Array
        (
            [department_id] => 3
            [department_name] => Manufacturing
            [name] => AMULRAJAN.A
            [code] => 104
            [clockin] => 
            [late] => 
            [date] => 1970-01-01
        )

    [3] => Array
        (
            [department_id] => 3
            [department_name] => Manufacturing
            [name] => KANAKARAJ.R
            [code] => 105
            [clockin] => 
            [late] => 
            [date] => 1970-01-01
        )

    [4] => Array
        (
            [department_id] => 3
            [department_name] => Manufacturing
            [name] => ELAYARAJA
            [code] => 106
            [clockin] => 
            [late] => 
            [date] => 1970-01-01
        )

Ожидаемый результат, как показано ниже

[1] => Array
    (

        [department_name] => Manufacturing

    )

[2] => Array
    (

        [department_name] => R & D

    )

Вот что япытался:

foreach($attendance as $dr){
           $alldep = $dr->department_name;
       echo $alldep;
}

Обратите внимание, я получаю все данные в формате массива, а не как объект

Ответы [ 4 ]

0 голосов
/ 04 марта 2019

Попробуйте это

$department_names = array();

 foreach($attendance as $dr){
   $alldep = $dr->department_name;
   array_push($department_names , array('department_name' => $dr->department_name)); 
}

print_r($department_names$department_names);

Вывод

[1] => Array
(
    [department_name] => Manufacturing
)
[2] => Array
(
    [department_name] => R & D
)
0 голосов
/ 04 марта 2019

Возьмите новый массив $departments

Цикл по указанному массиву.

Добавьте department к $departments.

Используйте department в качестве ключа.

Поскольку массивы PHP всегда имеют уникальные ключи, вы получите только уникальные отделы.

Рабочий код:

<code><?php
$arr = [
[
'department_id' => 15 ,'department_name' => 'R&D' ,'name' => 'SUBRAMANIAN' ,'code' => 101
 ,'clockin' => '' ,'late' => '' ,'date' => '1970-01-01'
],
[
 'department_id' => 3 ,'department_name' => 'Manufacturing' ,'name' => 'RAVI' ,'code' => 103
 ,'clockin' => '' ,'late' => '' ,'date' => '1970-01-01'
],
[
 'department_id' => 3 ,'department_name' => 'Manufacturing' ,'name' => 'AMULRAJAN.A' ,'code' => 104 
 ,'clockin' => '' ,'late' =>'' ,'date' => '1970-01-01'
],
[
 'department_id' => 3 ,'department_name' => 'Manufacturing' ,'name' => 'KANAKARAJ.R' ,'code' => 105
 ,'clockin' => '' ,'late' => '' ,'date' => '1970-01-01'
],
[
 'department_id' => 3 ,'department_name' => 'Manufacturing' ,'name' => 'ELAYARAJA' ,'code' => 106
 ,'clockin' => '' ,'late' => ''
]];

$departments = '';
if (! empty($arr)) {
    foreach ($arr as $elem) {
 $departments[$elem['department_name']] = $elem['department_name'];
    }
}
echo '<pre>';print_r($departments);echo '
';

Выходы:

Array
(
    [R&D] => R&D
    [Manufacturing] => Manufacturing
)
0 голосов
/ 04 марта 2019

Попробуйте этот код для требуемого вывода

$arr = array_unique(array_column($attendance, 'department_name'));
foreach($arr AS $a)
{
    $newarr[]['department_name'] = $a;
}
echo "<pre>"; print_r($newarr);
0 голосов
/ 04 марта 2019

Тебе стоит попробовать вот так

$uniqArr= array();
foreach ($attendance as $dr) {
    $uniqArr[] = $dr->department_name;;
}
$uniqueRes = array_unique($uniqArr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...