我有三个数组,比如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;
}
达到最终结果。
答案 0 :(得分:0)
如果我误解了某些内容,我不能100%确定你要完成的任务Minimal, Complete, and Verifiable example可能会有所帮助。
current()
函数似乎无法正常工作。 (或者更具体地说,是内部指针。)
如果您查看PHP文档中的示例:Current()
,您会看到current($array)
要更改元素,您需要调用next($array)
或prev($array)
。
这些函数移动数组的内部指针。
请注意,在PHP 5中,foreach
循环使用内部指针(并在启动循环时重置它),但在PHP 7中,foreach
循环不< / i>使用内部指针。
无论如何,我最好的猜测是什么可以帮到你。
$valsarray_index = 0;
foreach ($otherarray as $other) {
$multiarray_value = array('Val1' => $other['Val1'], 'Val2' => $other['Val2']);
foreach ($other as $sub) {
$multiarray_value[$valsarray_index] = $sub;
// $multiarray_value["VALSARRAY_KEY" . $valsarray_index] = $sub;
$valsarray[] = $sub;
$valsarray_index += 1; // This stays in lockstep with the last index of $valsarray
}
$multiarray[] = $multiarray_value;
}
我不确定你希望最终输出看起来像什么。如果这会产生不正确的信息,那么为输入提供一些特定的数组以及您期望输出的内容是否有用。