我有2个单个数组,我想添加到多维数组中,但一次只能添加一个。这意味着首先添加数组1,然后添加第二数组2,但是它们都不能存在于关联数组内的同一数组中。让我告诉你。
$array1 = ['installer1' => 'Aaron Cash']
$array2 = ['installer2' => 'Wayne Taylor']
$AssociativeArray = array (
'JobNumber' => '2',
'JobType' => '3',
'Node' => '10',
'fname' => 'RICARDO',
'lname' => 'SMITH',
'RAddress' => 'SUGARAPPLE ST',
'HomePhone' => '3924651',
'WorkPhone' => '3276200',
'RTime' => '10-12',
'Comment' => 'FROM POLICE STATION, EAST INTO PINEWOOD..3RD LFT ONTO SUGARAPPLE ST; 5TH HSE ON RGT; BEIGE/YELLW #19',
'FTax' => '1.00',
'Tag' => '010106',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10221401',
'offernum' => '2136370',
),
122 =>
array (
'JobNumber' => '30',
'JobType' => '3',
'Node' => '213',
'fname' => 'MONIQUE',
'lname' => 'SAWYER NAIRN',
'RAddress' => 'SUTTON ST',
'HomePhone' => '8017750',
'WorkPhone' => '2250417',
'RTime' => '10-12',
'Comment' => 'TRN ONTO KEMP RD FRM SHIRLEY ST, 1ST LFT BY LODGE BLDG, 2ND RT, UNPAINTED HSE AT DEAD END. #13 ...SDW',
'FTax' => '1.00',
'Tag' => '213308',
'QuotaGroup' => '1.00',
'Cust_Acct' => '11390602',
'offernum' => '2137494',
),
176 =>
array (
'JobNumber' => '22',
'JobType' => '1',
'Node' => '128',
'fname' => 'OSMANY',
'lname' => 'GODEICH',
'RAddress' => 'HUDSON STREET',
'HomePhone' => '8148003',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'VILLAGE RD ONTO ST ANDREWS DR LFT @ TJUN, 3RD RGT TO 4 WAY JUNT BLDG ON LFT WHIT/GRN 4PLEX UNIT#2. lim',
'FTax' => '1.00',
'Tag' => '128101',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10036246',
'offernum' => '2137124',
),
235 =>
array (
'JobNumber' => '5',
'JobType' => '3',
'Node' => '27',
'fname' => 'ROSALIE',
'lname' => 'BAIN',
'RAddress' => 'NASSAU VILLAGE',
'HomePhone' => '4233021',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'FRM SOLDIER RD TO NASSAU VILLAGE;MKRGT AT T-JUNC;7TH LFT OPP BUDGET, 2ND BUILDING ON THE RIGHT (S&M) BEIGE/GREEN APT #1 4233021 call b4 arrive',
'FTax' => '1.00',
'Tag' => '027401',
'QuotaGroup' => '1.00',
'Cust_Acct' => '12621206',
'offernum' => '2136937',
),
)%
所以从本质上讲,我希望我的输出看起来像这样:
array (
'JobNumber' => '2',
'JobType' => '3',
'Node' => '10',
'fname' => 'RICARDO',
'lname' => 'SMITH',
'RAddress' => 'SUGARAPPLE ST',
'HomePhone' => '3924651',
'WorkPhone' => '3276200',
'RTime' => '10-12',
'Comment' => 'FROM POLICE STATION, EAST INTO PINEWOOD..3RD LFT ONTO SUGARAPPLE ST; 5TH HSE ON RGT; BEIGE/YELLW #19',
'FTax' => '1.00',
'Tag' => '010106',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10221401',
'offernum' => '2136370',
'installer1' => 'Aaron Cash',
),
122 =>
array (
'JobNumber' => '30',
'JobType' => '3',
'Node' => '213',
'fname' => 'MONIQUE',
'lname' => 'SAWYER NAIRN',
'RAddress' => 'SUTTON ST',
'HomePhone' => '8017750',
'WorkPhone' => '2250417',
'RTime' => '10-12',
'Comment' => 'TRN ONTO KEMP RD FRM SHIRLEY ST, 1ST LFT BY LODGE BLDG, 2ND RT, UNPAINTED HSE AT DEAD END. #13 ...SDW',
'FTax' => '1.00',
'Tag' => '213308',
'QuotaGroup' => '1.00',
'Cust_Acct' => '11390602',
'offernum' => '2137494',
'installer2' => 'Wayne Taylor',
),
176 =>
array (
'JobNumber' => '22',
'JobType' => '1',
'Node' => '128',
'fname' => 'OSMANY',
'lname' => 'GODEICH',
'RAddress' => 'HUDSON STREET',
'HomePhone' => '8148003',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'VILLAGE RD ONTO ST ANDREWS DR LFT @ TJUN, 3RD RGT TO 4 WAY JUNT BLDG ON LFT WHIT/GRN 4PLEX UNIT#2. lim',
'FTax' => '1.00',
'Tag' => '128101',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10036246',
'offernum' => '2137124',
'installer1' => 'Aaron Cash',
),
235 =>
array (
'JobNumber' => '5',
'JobType' => '3',
'Node' => '27',
'fname' => 'ROSALIE',
'lname' => 'BAIN',
'RAddress' => 'NASSAU VILLAGE',
'HomePhone' => '4233021',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'FRM SOLDIER RD TO NASSAU VILLAGE;MKRGT AT T-JUNC;7TH LFT OPP BUDGET, 2ND BUILDING ON THE RIGHT (S&M) BEIGE/GREEN APT #1 4233021 call b4 arrive',
'FTax' => '1.00',
'Tag' => '027401',
'QuotaGroup' => '1.00',
'Cust_Acct' => '12621206',
'offernum' => '2136937',
'installer2' => 'Wayne Taylor',
),
)%
反正有这样做吗?我基本上是在尝试为工作人员分配技术人员,但是我需要找出一种为技术人员分配相同数量工作的方法。
非常感谢!
答案 0 :(得分:0)
因此,我尝试为您解决此问题,这很简单,您只需要遍历关联数组,然后交替添加其他数组中的元素。
here是该代码的有效示例。
<?php
$array1 = ['installer1' => 'Aaron Cash'];
$array2 = ['installer2' => 'Wayne Taylor'];
$AssociativeArray = [
array (
'JobNumber' => '2',
'JobType' => '3',
'Node' => '10',
'fname' => 'RICARDO',
'lname' => 'SMITH',
'RAddress' => 'SUGARAPPLE ST',
'HomePhone' => '3924651',
'WorkPhone' => '3276200',
'RTime' => '10-12',
'Comment' => 'FROM POLICE STATION, EAST INTO PINEWOOD..3RD LFT ONTO SUGARAPPLE ST; 5TH HSE ON RGT; BEIGE/YELLW #19',
'FTax' => '1.00',
'Tag' => '010106',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10221401',
'offernum' => '2136370',
),
array (
'JobNumber' => '30',
'JobType' => '3',
'Node' => '213',
'fname' => 'MONIQUE',
'lname' => 'SAWYER NAIRN',
'RAddress' => 'SUTTON ST',
'HomePhone' => '8017750',
'WorkPhone' => '2250417',
'RTime' => '10-12',
'Comment' => 'TRN ONTO KEMP RD FRM SHIRLEY ST, 1ST LFT BY LODGE BLDG, 2ND RT, UNPAINTED HSE AT DEAD END. #13 ...SDW',
'FTax' => '1.00',
'Tag' => '213308',
'QuotaGroup' => '1.00',
'Cust_Acct' => '11390602',
'offernum' => '2137494',
'installer2' => 'Wayne Taylor',
),
array (
'JobNumber' => '22',
'JobType' => '1',
'Node' => '128',
'fname' => 'OSMANY',
'lname' => 'GODEICH',
'RAddress' => 'HUDSON STREET',
'HomePhone' => '8148003',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'VILLAGE RD ONTO ST ANDREWS DR LFT @ TJUN, 3RD RGT TO 4 WAY JUNT BLDG ON LFT WHIT/GRN 4PLEX UNIT#2. lim',
'FTax' => '1.00',
'Tag' => '128101',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10036246',
'offernum' => '2137124',
'installer1' => 'Aaron Cash',
),
array (
'JobNumber' => '5',
'JobType' => '3',
'Node' => '27',
'fname' => 'ROSALIE',
'lname' => 'BAIN',
'RAddress' => 'NASSAU VILLAGE',
'HomePhone' => '4233021',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'FRM SOLDIER RD TO NASSAU VILLAGE;MKRGT AT T-JUNC;7TH LFT OPP BUDGET, 2ND BUILDING ON THE RIGHT (S&M) BEIGE/GREEN APT #1 4233021 call b4 arrive',
'FTax' => '1.00',
'Tag' => '027401',
'QuotaGroup' => '1.00',
'Cust_Acct' => '12621206',
'offernum' => '2136937',
'installer2' => 'Wayne Taylor',
),
];
$i=0;
foreach($AssociativeArray as $key => $arr){
if($i % 2 == 0){
foreach($array1 as $key1 => $val1){
$AssociativeArray[$key][$key1] = $val1;
}
}else{
foreach($array2 as $key2 => $val2){
$AssociativeArray[$key][$key2] = $val2;
}
}
$i++;
}
print_r($AssociativeArray);
要将第三个数组添加到上述解决方案中,您需要修改代码,如下所示。
$array1 = ['installer1' => 'Aaron Cash'];
$array2 = ['installer2' => 'Wayne Taylor'];
$array3 = ['installer3' => 'Omar Abbas'];
$tempArr = [$array1,$array2,$array3];
$i=-1;
foreach($AssociativeArray as $key => $arr){
$i = ($i < 2 ? $i+1 : 0);
foreach($tempArr[$i] as $key1 => $val1){
$AssociativeArray[$key][$key1] = $val1;
}
}
答案 1 :(得分:0)
您可以尝试以下操作:
<?php
$array1 = ['installer1' => 'Aaron Cash'];
$array2 = ['installer2' => 'Wayne Taylor'];
$AssociativeArray = array(
array(
'JobNumber' => '2',
'JobType' => '3',
'Node' => '10',
'fname' => 'RICARDO',
'lname' => 'SMITH',
'RAddress' => 'SUGARAPPLE ST',
'HomePhone' => '3924651',
'WorkPhone' => '3276200',
'RTime' => '10-12',
'Comment' => 'FROM POLICE STATION, EAST INTO PINEWOOD..3RD LFT ONTO SUGARAPPLE ST; 5TH HSE ON RGT; BEIGE/YELLW #19',
'FTax' => '1.00',
'Tag' => '010106',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10221401',
'offernum' => '2136370',
),
122 =>
array(
'JobNumber' => '30',
'JobType' => '3',
'Node' => '213',
'fname' => 'MONIQUE',
'lname' => 'SAWYER NAIRN',
'RAddress' => 'SUTTON ST',
'HomePhone' => '8017750',
'WorkPhone' => '2250417',
'RTime' => '10-12',
'Comment' => 'TRN ONTO KEMP RD FRM SHIRLEY ST, 1ST LFT BY LODGE BLDG, 2ND RT, UNPAINTED HSE AT DEAD END. #13 ...SDW',
'FTax' => '1.00',
'Tag' => '213308',
'QuotaGroup' => '1.00',
'Cust_Acct' => '11390602',
'offernum' => '2137494',
),
176 =>
array(
'JobNumber' => '22',
'JobType' => '1',
'Node' => '128',
'fname' => 'OSMANY',
'lname' => 'GODEICH',
'RAddress' => 'HUDSON STREET',
'HomePhone' => '8148003',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'VILLAGE RD ONTO ST ANDREWS DR LFT @ TJUN, 3RD RGT TO 4 WAY JUNT BLDG ON LFT WHIT/GRN 4PLEX UNIT#2. lim',
'FTax' => '1.00',
'Tag' => '128101',
'QuotaGroup' => '1.00',
'Cust_Acct' => '10036246',
'offernum' => '2137124',
),
235 =>
array(
'JobNumber' => '5',
'JobType' => '3',
'Node' => '27',
'fname' => 'ROSALIE',
'lname' => 'BAIN',
'RAddress' => 'NASSAU VILLAGE',
'HomePhone' => '4233021',
'WorkPhone' => '',
'RTime' => '10-12',
'Comment' => 'FRM SOLDIER RD TO NASSAU VILLAGE;MKRGT AT T-JUNC;7TH LFT OPP BUDGET, 2ND BUILDING ON THE RIGHT (S&M) BEIGE/GREEN APT #1 4233021 call b4 arrive',
'FTax' => '1.00',
'Tag' => '027401',
'QuotaGroup' => '1.00',
'Cust_Acct' => '12621206',
'offernum' => '2136937',
)
);
// Generate the final array
$result = [];
$installerIndex = 0;
foreach ($AssociativeArray as $key => $value) {
$installerIndex++; //Increase the operator index
$operatorArray = ($installerIndex % 2) ? $array1 : $array2; // Select the operator array using the current index
$result[$key] = $value + $operatorArray; // Merge the value with the selected operator info
}
}
但是我会将两个安装程序放到一个关联数组中,如下所示:
$installerArray = [
['installer1' => 'Aaron Cash'],
['installer2' => 'Wayne Taylor']
];
这样,您可以更轻松地访问它们,循环看起来像这样:
foreach ($AssociativeArray as $key => $value) {
$operatorIndex++; //Increase the operator index
$result[$key] = $value + $installerArray[$operatorIndex%2]; // Merge the value with the selected operator info
}
答案 2 :(得分:0)
更新代码 多维数组第一行的校正
def gen_scenarios (df_cov,df_risk_factors,df_positions):
v_no_sample = 1000
v_no_pos = df_positions.shape[0] #this dataframe has 130 rows
samples_df = np.random.multivariate_normal(np.mean(df_risk_factors).values,df_cov,v_no_sample)
v_scn_df = pd.DataFrame()
for in in range(0,v_no_sample):
for j in range (0,v_no_pos):
if df_positions.loc[j].col1 == 'A':
dict1 = {'Scn_Num':[i], 'Scn_Ret': [samples_df[df_positions.loc[j].col1.iloc[i],'Price':[100]]
elif df_positions.loc[j].col1 == 'B':
dict1 = {'Scn_Num':[i], 'Scn_Ret': [samples_df[df_positions.loc[j].col1.iloc[i],'Price':[200]]
v_tmp_col_lst = ['Scn_Num','Scn_Ret','Price']
v_df_tmp = pd.DataFframe(dict1,columns=v_tmp_col_lst,index=dict1['Scn_Num'])
v_scn_df = v_scn_df.append(v_df_tmp)
return v_scn_df
最后一行使用array_push函数在AssociativeArray中添加两个数组
$AssociativeArray = array (
array(