如果我有这样的主数组:
@IBAction
我想用另一个数组中的值替换每个第4个键值。
第二个数组是:
@IBOutlet
所以新数组应如下所示:
array(5) {
[0]=>
string(4) "1039"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "0"
[4]=>
string(0) ""
}
array(5) {
[0]=>
string(4) "1040"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "0"
[4]=>
string(0) ""
}
array(5) {
[0]=>
string(4) "1041"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "0"
[4]=>
string(0) ""
}
如何实现这一目标?我已经尝试使用foreach循环第一个,然后再次使用foreach进行第二个循环,然后array(156) {
[0]=>
string(12) "Some title 1"
[1]=>
string(12) "Some title 2"
[2]=>
string(12) "Some title 3"
}
,array(5) {
[0]=>
string(4) "1039"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "Some title 1"
[4]=>
string(0) ""
}
array(5) {
[0]=>
string(4) "1040"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "Some title 2"
[4]=>
string(0) ""
}
array(5) {
[0]=>
string(4) "1041"
[1]=>
string(1) "1"
[2]=>
string(4) "2015"
[3]=>
string(1) "Some title 3"
[4]=>
string(0) ""
}
和类似的东西,但从来没有让它工作。提前致谢
答案 0 :(得分:1)
if($masterArray) {
foreach($masterArray as $mKey=>$mValue) {
if(isset($secondArray[$mKey]) {
$masterArray[$mKey][3] = $secondArray[$mKey];
}
}
}
答案 1 :(得分:0)
只需使用您可以索引的事实。
for($i = 0; $i < count($second_array); $i++)
{
$array_to_update = $arraylist[$i]; //get one of the arrays that you want to update
$array_to_update[3] = $second_array[$i]; // 0-based index, so [3] is actually your 4th value. Set it to the $i-th value in your second array.
}
Doneski的。
注意:我假设您要在其他名为arraylist的数组中更新要更新的数组。如果你没有那种格式,或者让它像那样或使用不同的方法。另外,我假设arraylist和second_array(包含你想要添加的字符串)长度相同。如果不是这种情况,请确保您不会让索引出错。
答案 2 :(得分:0)
在您的情况下,您可以使用此代码:
$myArray = array_replace($myArray ,array_fill_keys(array_keys($myArray , $value),$replacement));
答案 3 :(得分:0)
if(count($masterArr) > 0) {
foreach($masterArr as $key => $value) {
if( isset($masterArr[$key][3]) && isset($secondArr[$key]) {
$masterArr[$key][3] = $secondArr[$key];
continue; # Will help to neglect unwanted loops
}
}
}