私は3つの配列、たとえばmultiarray
,valsarray
およびotherarray
を持っています。 otherarray
は、multiarray
とvalsarray
に値を供給する多次元配列ですが、それ以外にはここでは重要ではありません。 valsarray
がotherarray
の各値のサブアレイから値を受け取り、以下に示すようmultiarray
は、otherarray
から直接値をとる:多次元配列の現在の値を変更する
foreach($otherarray as $other){
foreach($other as $sub){
$valsarray[] = $sub
}
$multiarray[] = array('Val1' => $other['Val1'], 'Val2' => $other['Val2']);
}
今はやりたいものを現在のアレイにvalsarray
に各キー/値のペアを追加していますmultiarray
のエントリと同様の結果を達成するために:私は、次の方法でcurrent
を使用してこの問題を解決しようと試みてきた
$multiarray = array('Val1' => $other['Val1'], 'Val2' => $other['Val2'],
'VALSARRAY_KEY1' => VALSARRAY_VALUE1, ..., 'VALSARRAY_KEYN' => VALSARRAY_VALUEN)
を:
foreach($valsarray as $key => $val){
current($multiarray)[$key] = $val;
}
しかし、multiarray
は変わりません。私はどのようにcurrent
が動作するか、またはこの問題に近づく方法を誤解している可能性がありますので、どんなヘルプや方向性も理解できます。
編集 - 例
otherarray = array(...prior array entries...,
array('Val1' => 'abc',
'Val2' => 'cde',
'Val3' => 'not important',
'Val4' => array(0 => 'subA', 1 => 'subB'),
...next array entries...);
BEFORE MERGE:
multiarray = array(...prior entries...,
array('Val1' => 'abc',
'Val2' => 'cde'));
valsarray = array(0 => 'subA', 1 => 'subB');
AFTER MERGE:
multiarray = array(...prior entries...,
array('Val1' => 'abc',
'Val2' => 'cde',
0 => 'subA',
1 => 'subB'));
マルチアレイではなく、多次元1の規則的に配列したのであれば、私のようなものだろう。最終的な結果を達成するために
foreach($valsarray as $key => $val){
$multiarray[$key] = $val;
}
を。
私は、私が何をしたいのかの例を含めるように答えを変更しました。あなたのために現在の情報のお知らせありがとう – yanman1234
さて、まだ問題は見えていない、@ yanman1234。私の問題の一部は、あまりにも多くの 'foreach'ループがあるようだと思います。 '$ otherarray'は完全な多次元配列ではないように見えるので、2番目の' foreach'が文字列に対して繰り返し処理されることがあります。 (私はこれを意図しているとは思わない)。どちらかの値を表示すると、メインのforeachループが少なくとも2回ループするように表示されるか、(おそらくそうであるように)私の答えが間違っているかを示すのが役に立ちます。 –
申し訳ありませんが、 '$ otherarray'に外側の配列を残しましたが、今修正されています。あなたのソリューションは実際には今私は再びそれを見て動作します。 '$ valsarray_index'が最初は私を混乱させましたが、今は' $ sub'を挿入するための新しいキーを作るだけです。ありがとうございました! – yanman1234