我有三個數組,例如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
,進入實現類似的結果:
$multiarray = array('Val1' => $other['Val1'], 'Val2' => $other['Val2'],
'VALSARRAY_KEY1' => VALSARRAY_VALUE1, ..., 'VALSARRAY_KEYN' => VALSARRAY_VALUEN)
我試圖以下列方式來解決這個使用current
:
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'));
因此,如果多陣列是一個普通數組,而不是一個多維的,我會做這樣的事情:
foreach($valsarray as $key => $val){
$multiarray[$key] = $val;
}
要達到的最終結果。
我修改了我的答案,以包含我想要發生的事例。謝謝您對'current'的信息 – yanman1234
好的,仍然沒有看到問題,@ yanman1234。我認爲我的問題的一部分似乎有太多'foreach'循環。 '$ otherarray'似乎不是一個完全的多維數組,所以有時第二個'foreach'將迭代一個字符串。 (我不這麼認爲)。我認爲這會有幫助,以顯示任何值,以便主foreach循環至少循環兩次,或顯示我的答案是不正確的(因爲它可能是)。 –
對不起,我在'$ otherarray'中省略了外部數組,現在已經修復了。現在我的解決方案實際上可以工作,我再次看到它。 '$ valsarray_index'起初讓我困惑,但我現在看到它只是爲'$ sub'插入新密鑰。謝謝! – yanman1234