【发布时间】:2021-03-13 13:02:54
【问题描述】:
我正在尝试通过检查索引号来创建新数组并用另一个数组填充该索引。
如果当前元素索引在索引 4 中,则在循环中
它将从另一个数组中获取值。
并且该位置的值将移动到下一个循环。
我目前的两个数组是这样的
$arr1 = array(
0 => 'number 1',
1 => 'number 2',
2 => 'number 3',
3 => 'number 4',
4 => 'number 5',
) ;
$arr2 = array(
0 => 'number 4 insert',
1 => 'number 8 insert',
2 => 'number 12 insert',
3 => 'number 16 insert',
4 => 'number 24 insert',
) ;
我想要这样的预期新数组
Array
(
[0] => 'number 1',
[1] => 'number 2',
[2] => 'number 3',
[3] => 'number 4 insert',
[4] => 'number 4',
[5] => 'number 5',
[6] => 'number 6',
[7] => 'number 8 insert',
[8] => 'number 7',
[9] => 'number 8',
[10] => 'number 9',
[11] => 'number 12 insert',
[12] => 'number 10',
...
...
)
对于这个解决方案,我正在尝试这个,但它通常不是通过在我想要的选定键索引上推送值来替换我的主数组值。
$arr1 = array(
0 => 'number 1',
1 => 'number 2',
2 => 'number 3',
3 => 'number 4',
4 => 'number 5',
) ;
$arr2 = array(
0 => 'number 4 insert',
1 => 'number 8 insert',
2 => 'number 12 insert',
3 => 'number 16 insert',
4 => 'number 24 insert',
) ;
function match_arrayKeys ($x, $y,$z)
{
$keys = array_keys ($x);
$keysy = array_keys ($y);
for ($i = 0; $i < count ($keys); $i++)
{
$j = $i+1;
if($j%$z== 0 ){
$newarray [$i] = $y[$i-1];
} else {
$newarray [$i] = $x[$i];
}
}
return $newarray;
}
print_r (match_arrayKeys ($arr1,$arr2, 4));
【问题讨论】:
-
这个期望的顺序背后的逻辑是什么?为什么你的字符串在需要插入时会说“replaced”?
-
@El_Vanja 好的,我更改了字符串文本。
-
$arr2来自哪里?将$arr2的键更新为结果数组中您想要每个元素的位置是否会使这项任务更容易?比如$arr2 = [3 => 'number 4 insert', 7 => 'number 8 insert']? -
让我看看我是否理解您的问题:您有一个数组,其输入格式为“数字 i”,其中 i 是元素的索引,数字 z 是整数。现在在传递给函数时,您希望每个第 z 个元素都说“数字 z 被替换”?是这样吗?
标签: php arrays loops for-loop foreach