如何用PHP中另一个数组的值替换数组中一个元素的值?

时间:2016-01-18 10:08:27

标签: php arrays

如果我有这样的主数组:

@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) "" } 和类似的东西,但从来没有让它工作。提前致谢

4 个答案:

答案 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 
    }
  }
}