私は処理しているデータがあります。私はマージしている配列がある段階に達しました。 私の問題は、必要な配列の量が動的であることと、設定した量のデータを処理するためのコードを取得したにもかかわらず、それらのカウンタすべてと少し混乱していて、繰り返しコードがあることです。 私はそれらの配列を何らかの形で動的に生成する必要があると思いますが、どうすればよいかわかりません。 は、ここで私は3つのアレイ(ループ)がある場合、完璧な作品に私のコードです:私はループに2つの配列を持っている場合PHPでダイナミック配列をマージ
ここ$dataonlyarray = array();
$dataonlyarray2 = array();
$dataonlyarray3 = array();
$dataonlyarray4 = array();
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
$dataonlyarray2[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
$dataonlyarray3[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
$dataonlyarray4[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]);
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]+1);
array_push($dataonlyarray2[$i],substr($headers_arr[$startingdatecolumn],0,10));
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+2);
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+3);
array_push($dataonlyarray3[$i],substr($headers_arr[$startingdatecolumn+3],0,10));
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray4[$i],$main_prod_arr[$i][$startingdatecolumn]+4);
array_push($dataonlyarray4[$i],$main_prod_arr[$i][$startingdatecolumn]+5);
array_push($dataonlyarray4[$i],substr($headers_arr[$startingdatecolumn+5],0,10));
}
$dataonlyarrayall[] = array_merge($dataonlyarray2,$dataonlyarray3,$dataonlyarray4);
echo '<pre>'; print_r($dataonlyarrayall);
echo '</pre>';
は私のコードですが(正常に動作します):あなたのよう
$dataonlyarray = array();
$dataonlyarray2 = array();
$dataonlyarray3 = array();
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
$dataonlyarray2[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
$dataonlyarray3[] = array_slice($main_prod_arr[$i],0,$startingdatecolumn);
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]);
array_push($dataonlyarray2[$i],$main_prod_arr[$i][$startingdatecolumn]+1);
array_push($dataonlyarray2[$i],substr($headers_arr[$startingdatecolumn],0,10));
}
for ($i = 0; $i < sizeof($main_prod_arr); $i++) {
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+2);
array_push($dataonlyarray3[$i],$main_prod_arr[$i][$startingdatecolumn]+3);
array_push($dataonlyarray3[$i],substr($headers_arr[$startingdatecolumn+3],0,10));
}
$dataonlyarrayall[] = array_merge($dataonlyarray2,$dataonlyarray3);
echo '<pre>'; print_r($dataonlyarrayall);
echo '</pre>';
:ここ
が2つの製品、3つの日付(必要な3つのループ)での$ main_prod_arr(のサンプル..ですすべての新しい配列内でインクリメントする必要があるいくつかの値があるでしょうここ
2つの製品及び3つの日付(必須3つのループ)と($ headers_arrのサンプルである: アレイ
(
[0] => ItemNbr
[1] => ItemDesc
[2] => 2016/01/01 Qty
[3] => 2016/01/01 Sales
[4] => 2016/01/02 Qty
[5] => 2016/01/02 Sales
[6] => 2016/01/03 Qty
[7] => 2016/01/03 Sales
)
これは、上記アレイの場合expecrted出力()である:
Array
(
[0] => Array
(
[0] => Array
(
[0] => Array
(
[0] => 2602721
[1] => Product1
[2] => 11
[3] => 12
[4] => 2016/01/01
)
[1] => Array
(
[0] => 2616122
[1] => Product2
[2] => 21
[3] => 22
[4] => 2016/01/01
)
[2] => Array
(
[0] => 2602721
[1] => Product1
[2] => 13
[3] => 14
[4] => 2016/01/02
)
[3] => Array
(
[0] => 2616122
[1] => Product2
[2] => 23
[3] => 24
[4] => 2016/01/02
)
[4] => Array
(
[0] => 2602721
[1] => Product1
[2] => 15
[3] => 16
[4] => 2016/01/03
)
[5] => Array
(
[0] => 2616122
[1] => Product2
[2] => 25
[3] => 26
[4] => 2016/01/03
)
)
)
)
助けていただければ幸いです。
'$ main_prod_arr'のサンプルを投稿できますか? – Viral
配列の構造を予想された出力と一緒に投稿する –
関連する配列を追加しました –