$hours_effort_result输出
Array
(
[0] => Array
(
[0] => Array
(
[EMPLOYEEID] => 14453
[EMPLOYEE_NAME] => User 1
[SKILL_NAME] => Application Software
[PROJECTED_HOURS] => 20
[SITE_STATUS] => Offshore
[MONTH_YEAR] => JUL-2015
)
[1] => Array
(
[EMPLOYEEID] => 14559
[EMPLOYEE_NAME] => User 2
[SKILL_NAME] => Application Software
[PROJECTED_HOURS] => 50
[SITE_STATUS] => Offshore
[MONTH_YEAR] => JUL-2015
)
[2] => Array
(
[EMPLOYEEID] => 14559
[EMPLOYEE_NAME] => User 2
[SKILL_NAME] => Application Software
[PROJECTED_HOURS] => 150
[SITE_STATUS] => Offshore
[MONTH_YEAR] => JUL-2015
)
[3] => Array
(
[EMPLOYEEID] => 14611
[EMPLOYEE_NAME] => User 3
[SKILL_NAME] => Application Software
[PROJECTED_HOURS] => 60
[SITE_STATUS] => Offshore
[MONTH_YEAR] => JUL-2015
)阵列操作
$user_array = Array();
foreach ($hours_effort_result as $key => $data) {
if (!empty($data)) {
foreach ($data as $key => $val) {
if ('JUL-2015' == $month) {
$user_array[$val['EMPLOYEE_NAME']][$month]['EMPLOYEEID'] = $val['ACTUAL_HOURS'];
$user_array[$val['EMPLOYEE_NAME']][$month]['SITE_STATUS'] = $val['SITE_STATUS'];
$user_array[$val['EMPLOYEE_NAME']][$month]['PROJECTED_HOURS'] = $val['PROJECTED_HOURS'];
}
}
}
}$user_array输出
Array
(
[User 1] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14453
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 20
)
)
[User 2] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14559
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 150
)
)
[User 3] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14611
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 60
)
)这里,$user_array有两个User 2记录,但只显示one记录。值存储在同一个key中,因此它重写并显示该key的最后一个值。
如何避免这种情况,并显示来自$hours_effort_result的相同数量的记录?
期望的最终输出
Array
(
[User 1] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14453
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 20
)
)
[User 2] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14559
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 50
)
)
[User 2] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14559
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 150
)
)
[User 3] => Array
(
[JUL-2015] => Array
(
[EMPLOYEEID] => 14611
[SITE_STATUS] => Offshore
[PROJECTED_HOURS] => 60
)
)发布于 2015-11-23 09:29:24
更改PHP代码并尝试agian :-
$final_array = Array();
foreach ($hours_effort_result as $key => $data)
{
if (!empty($data))
{
foreach ($data as $key => $val)
{
if ('JUL-2015' == $month)
{
$user_array = Array();
$user_array[$val['EMPLOYEE_NAME']][$month]['EMPLOYEEID'] = $val['ACTUAL_HOURS'];
$user_array[$val['EMPLOYEE_NAME']][$month]['SITE_STATUS'] = $val['SITE_STATUS'];
$user_array[$val['EMPLOYEE_NAME']][$month]['PROJECTED_HOURS'] = $val['PROJECTED_HOURS'];
array_push($final_array, $user_array);
}
}
}
}现在打印$final_array,你就得到了你想要的答案。
发布于 2015-11-23 09:30:44
问题是,您使用的是其他东西作为关键,而且它并不是唯一的。对于原始数组中的记录1和记录2,员工名称相同。
只需为第二个数组使用唯一的键即可。
发布于 2015-11-23 09:31:38
User2的两个记录是相同的。根据意义或属性。我认为它是重复的,应该被视为数据错误。
https://stackoverflow.com/questions/33867465
复制相似问题