3 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
試試下面的代碼也許它會(huì)有所幫助。
/*
using array column will get the result in
Array ( [Manager] => 3 [Director] => 2 )
*/
$array_column = array_column($array, 'total_count', 'user_type');
//Create new array like below
$add_array = array('Manager'=>'0', 'Director'=>'0', 'Trainee'=>'0',);
//using array_merge merge add_array and array_column
$new_array = array_merge($add_array, $array_column);
//using array_walk_recursive get the requird result
array_walk_recursive($new_array, function($item, $key) use (&$final_array){
$final_array['labels'][]=$key;
$final_array['dataset'][]=$item;
});
echo "<pre>";
print_r($final_array);
?>
案例 1- 如果受訓(xùn)者不在數(shù)組 DEMO 中
案例 2 - 如果 Manager 和 Director 都不在陣列 DEMO 中
案例 3- 如果主管不在 -演示

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是您可以使用帶有 splat(...) 運(yùn)算符的 array_combine 和 array_map 的腳本
$arr = array_combine(['labels','dataset'],array_map(null, ...$arr));
if(!in_array('Trainee',$arr['labels'])){
array_push($arr['labels'],'Trainee');
array_push($arr['dataset'],0);
}
print_r($arr);die;
array_combine — 通過使用一個(gè)數(shù)組作為鍵和另一個(gè)作為其值的數(shù)組來創(chuàng)建一個(gè)數(shù)組
注意:-在 array_map 中,NULL 可以作為值傳遞給回調(diào)以對多個(gè)數(shù)組執(zhí)行 zip 操作。如果只提供了 array1,array_map() 將返回輸入數(shù)組??傊褪菆?zhí)行數(shù)組操作的轉(zhuǎn)置
輸出:-
Array
(
[labels] => Array
(
[0] => Manager
[1] => Director
[2] => Trainee
)
[dataset] => Array
(
[0] => 3
[1] => 2
[2] => 0
)
)

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
嘗試這個(gè)
$arr = array_combine(['labels','dataset'], array_map(null, $arr));
制作一個(gè)將不存在的 user_type 添加到數(shù)組中的函數(shù)
function setUserType($userType, $array) {
if(!in_array($userType, $array['labels'])){
array_push($array['labels'], $userType);
array_push($array['dataset'], 0);
}
return $array;
}
通過任何用戶類型調(diào)用函數(shù),如“經(jīng)理”、“實(shí)習(xí)生”、“導(dǎo)演”
$arr = setUserType('Trainee', $arr);
或者創(chuàng)建一個(gè)包含所有用戶類型的數(shù)組并運(yùn)行一個(gè)循環(huán)
foreach(['Manager', 'Trainee', 'Director'] as $type) {
$arr = setData($type, $arr);
}
打印并顯示最終值
print_r($arr);
die();
演示https://3v4l.org/UbiXn
- 3 回答
- 0 關(guān)注
- 235 瀏覽
添加回答
舉報(bào)