#php #codeigniter
#php #codeigniter
Вопрос:
Я получаю это в качестве выходных данных
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
. Как я могу этого добиться? мне нужно показать это в table — td, чтобы отделы не повторялись
[0] => Array
(
[department_id] => 15
[department_name] => Ramp;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 amp; D
)
Вот что я пробовал:
foreach($attendance as $dr){
$alldep = $dr->department_name;
echo $alldep;
}
Пожалуйста, обратите внимание, что я получаю все данные в формате массива, а не как объект
Комментарии:
1. Вы должны использовать
array_unique()
2. можете ли вы показать пример
Ответ №1:
Вы должны попробовать следующим образом
$uniqArr= array();
foreach ($attendance as $dr) {
$uniqArr[] = $dr->department_name;;
}
$uniqueRes = array_unique($uniqArr);
Комментарии:
1. я получаю этот вывод: массив ( [0] => Продажи [3] => Сервис [4] => Производство [17] => КОММЕРЧЕСКОЕ [19] => ПРОЕКТИРОВАНИЕ [20] => GCT / ТЕПЛООБМЕННИК / СУШИЛКА для БЕЛЬЯ [21] => HRD [22] => МАРКЕТИНГ [23] => МАТЕРИАЛ)
2. как я могу повторить это
3. Вам нужно выполнить один цикл для
echo
каждого значения4. я получаю преобразование массива в строку
Ответ №2:
Берем новый массив $departments
Цикл по заданному массиву.
Добавьте department
к $departments
.
Используйте department
в качестве ключа.
Поскольку массивы PHP всегда имеют уникальные ключи, вы получите только уникальные отделы.
Рабочий код:
<?php
$arr = [
[
'department_id' => 15 ,'department_name' => 'Ramp;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 '</pre>';
Выводит:
Array
(
[Ramp;D] => Ramp;D
[Manufacturing] => Manufacturing
)
Комментарии:
1. я получаю эту ошибку @ученик не может использовать объект типа stdClass в качестве массива
2. когда я печатаю это в <td>, все emoployees, имеющие этот определенный отдел, повторяются
Ответ №3:
Попробуйте это
$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 amp; D
)
Ответ №4:
Попробуйте этот код для получения требуемого результата
$arr = array_unique(array_column($attendance, 'department_name'));
foreach($arr AS $a)
{
$newarr[]['department_name'] = $a;
}
echo "<pre>"; print_r($newarr);
Комментарии:
1. сейчас я получаю уникальные значения, но когда я печатаю, что все сотрудники, имеющие одинаковую должность, повторяются
2. Пожалуйста, опубликуйте точный вывод, который вам нужен, с приведенными выше данными.
3. мне нужно показать данные в табличном формате в <td>, но теперь одни и те же названия отделов повторяются для всех сотрудников, имеющих производственные
4. на самом деле это не помогло
5. Почему бы вам не опубликовать ваше точное требование с некоторыми статическими данными? Массив или изображение могли бы помочь