Laravel 根据公共值链接数组
我有一些类似的数组Laravel 根据公共值链接数组,laravel,Laravel,我有一些类似的数组 0:[id:'1',部门:'xyz',日期:'2019年10月10日',时间:'12:50'] 1:[id:'1',部门:'xyz',日期:'2019年10月11日',时间:'10:30'] 2:[id:'2',部门:'abc',日期:'09-09-2019',时间:'09:50'] 3:[id:'2',部门:'abc',日期:'07-07-2019',时间:'03:20'] 我希望它们根据id和部门合并 因此,0和1数组将合并在一起,输出应该类似于 0:[id:'1',部门
0:[id:'1',部门:'xyz',日期:'2019年10月10日',时间:'12:50']
1:[id:'1',部门:'xyz',日期:'2019年10月11日',时间:'10:30']
2:[id:'2',部门:'abc',日期:'09-09-2019',时间:'09:50']
3:[id:'2',部门:'abc',日期:'07-07-2019',时间:'03:20']
我希望它们根据id
和部门合并
因此,0
和1
数组将合并在一起,输出应该类似于
0:[id:'1',部门:'xyz',[[date:'10-10-2019',time:'12:50',[date:'11-10-2019',time:'10:30']]
而2
和3
数组将合并在一起,并且输出应该类似于
1:[id:'2',部门:'abc',[[date:'09-09-2019',time:'09:50',[date:'07-07-2019',time:'03:20']]
我怎么做呢?试试这个
$input = [
0 =>['id' => '1','department' => 'xyz','date' => '10-10-2019','time' => '12:50'],
1 => ['id' => '1','department' => 'xyz','date' => '11-10-2019','time' => '10:30'],
2 => ['id' => '2','department' => 'abc','date' => '09-09-2019','time' => '09:50'],
3 =>['id' => '2','department' => 'abc','date' => '07-07-2019','time' => '03:20']];
$output = [];
$id_array = [];
foreach ($input as $values)
{
$id_array [] = $values['id'];
}
$unique_id_array = array_unique($id_array);
foreach($input as $key => $in)
{
if(array_key_exists($key,$unique_id_array))
{
$output[] = [
'department' => $in['department'],
'id' => $in['id']
];
}
}
foreach($input as $in)
{
foreach($output as $key => $out)
{
if($out['id'] == $in['id'] && $out['department'] == $in['department'])
{
$output[$key]['date_time'][] = ['date' =>$in['date'],'time' => $in['time']];
}
}
}
print_r($output);die();
输出将是
Array
(
[0] => Array
(
[department] => xyz
[id] => 1
[date_time] => Array
(
[0] => Array
(
[date] => 10-10-2019
[time] => 12:50
)
[1] => Array
(
[date] => 11-10-2019
[time] => 10:30
)
)
)
[1] => Array
(
[department] => abc
[id] => 2
[date_time] => Array
(
[0] => Array
(
[date] => 09-09-2019
[time] => 09:50
)
[1] => Array
(
[date] => 07-07-2019
[time] => 03:20
)
)
)
)
试试这个
$input = [
0 =>['id' => '1','department' => 'xyz','date' => '10-10-2019','time' => '12:50'],
1 => ['id' => '1','department' => 'xyz','date' => '11-10-2019','time' => '10:30'],
2 => ['id' => '2','department' => 'abc','date' => '09-09-2019','time' => '09:50'],
3 =>['id' => '2','department' => 'abc','date' => '07-07-2019','time' => '03:20']];
$output = [];
$id_array = [];
foreach ($input as $values)
{
$id_array [] = $values['id'];
}
$unique_id_array = array_unique($id_array);
foreach($input as $key => $in)
{
if(array_key_exists($key,$unique_id_array))
{
$output[] = [
'department' => $in['department'],
'id' => $in['id']
];
}
}
foreach($input as $in)
{
foreach($output as $key => $out)
{
if($out['id'] == $in['id'] && $out['department'] == $in['department'])
{
$output[$key]['date_time'][] = ['date' =>$in['date'],'time' => $in['time']];
}
}
}
print_r($output);die();
输出将是
Array
(
[0] => Array
(
[department] => xyz
[id] => 1
[date_time] => Array
(
[0] => Array
(
[date] => 10-10-2019
[time] => 12:50
)
[1] => Array
(
[date] => 11-10-2019
[time] => 10:30
)
)
)
[1] => Array
(
[department] => abc
[id] => 2
[date_time] => Array
(
[0] => Array
(
[date] => 09-09-2019
[time] => 09:50
)
[1] => Array
(
[date] => 07-07-2019
[time] => 03:20
)
)
)
)
您好,我认为这将很好地工作,这是实现输出的简单和最好的方法。 我用你提供的数据在我的系统中尝试了很多代码,试试这个 我希望这也能对你起作用
<?php
$inputArr = [0 =>['id' => '1','department' => 'xyz','date' => '10-10-2019','time' => '12:50'],1 => ['id' => '1','department' => 'xyz','date' => '11-10-2019','time' => '10:30'],2 => ['id' => '2','department' => 'abc','date' => '09-09-2019','time' => '09:50'],3 =>['id' => '2','department' => 'abc','date' => '07-07-2019','time' => '03:20']];
print_r($inputArr);
$second_copy = $inputArr;
foreach ($inputArr as $key => $single)
{
$goalArr[$single['id']] = getRow($single['id'],$single['department'],$second_copy);
}
function getRow($id,$department,$second_copy)
{
$returnArr['id'] = $id;
$returnArr['department'] = $department;
foreach ($second_copy as $key => $single)
{
if($id == $single['id'] && $department == $single['department'])
{
$returnArr['date'][] = $single['date'];
$returnArr['time'][] = $single['time'];
}
}
return $returnArr;
}
echo "<br>Output is: <br>";
print_r($goalArr);
?>
您好,我认为这会很好地工作,而且这是实现输出的简单而最好的方法。 我用你提供的数据在我的系统中尝试了很多代码,试试这个 我希望这也能对你起作用
<?php
$inputArr = [0 =>['id' => '1','department' => 'xyz','date' => '10-10-2019','time' => '12:50'],1 => ['id' => '1','department' => 'xyz','date' => '11-10-2019','time' => '10:30'],2 => ['id' => '2','department' => 'abc','date' => '09-09-2019','time' => '09:50'],3 =>['id' => '2','department' => 'abc','date' => '07-07-2019','time' => '03:20']];
print_r($inputArr);
$second_copy = $inputArr;
foreach ($inputArr as $key => $single)
{
$goalArr[$single['id']] = getRow($single['id'],$single['department'],$second_copy);
}
function getRow($id,$department,$second_copy)
{
$returnArr['id'] = $id;
$returnArr['department'] = $department;
foreach ($second_copy as $key => $single)
{
if($id == $single['id'] && $department == $single['department'])
{
$returnArr['date'][] = $single['date'];
$returnArr['time'][] = $single['time'];
}
}
return $returnArr;
}
echo "<br>Output is: <br>";
print_r($goalArr);
?>
No它不会像您所说的那样返回输出现在我如何根据id和部门访问每天和时间?使用foreach
在$output
上循环,并基于id
和department
您可以选择日期和时间。foreach($output as$out){if($out['id'='1'&$out['department']=='xyz'){foreach($out['date\u time']作为$date\u time){echo$date\u time['date'];echo$date\u time['time'];}}}
No它不会像您所说的那样返回输出现在我如何根据id和部门访问每天和时间?使用foreach
在$output
上循环,并基于id
和department
您可以选择日期和时间。foreach($output as$out){if($out['id'='1'&$out['department']=='xyz'){foreach($out['date\u time']作为$date\u time){echo$date\u time['date'];echo$date\u time['time'];}}}}