如何使用PHP替换数组的某个部分?

时间:2013-11-18 23:05:02

标签: php arrays

这里需要一些关于数组的帮助。因为我试图创建一个代码,当你单击它时它将替换某个数组值。

在基本数组中假设我们有这个数组:

Array(
   [0] => Array(
      [id] => 1,
      [name] => xyz
   ),
   [1] => Array(
      [id] => 4,
      [name] => fsa
   ),
)

在我的新阵列中,我有类似的东西

Array(
   [id] => 4,
   [name] => pop
)

我有这样的验证:在基础数组中,我将此数组放在$ base_array中,在我的新数组中,我有$ update_array

$get_updated_array_id = $update_array[id];

for($x = 0; $x <= sizeof($base_array); $x++){

    $target = $base_array[$x]['id'];

    if($get_updated_array_id == $target){

        //should be replace the array value ID '4'

    }

}

所以最终的结果应该是:

 Array(
       [0] => Array(
          [id] => 1,
          [name] => xyz
       ),
       [1] => Array(
          [id] => 4,
          [name] => pop
       ),
    )

知道我该怎么办?感谢

3 个答案:

答案 0 :(得分:2)

<?php
$array = array(
    array('id' => 2,'name' => 'T'),
    array('id' => 4,'name' => 'S')
);

$replace = array('id' => 4,'name' => 'New name');

foreach ($array as $key => &$value) {
    if($value['id'] == $replace['id'] ) {
        $value = $replace;
    }
}

print_r($array);

答案 1 :(得分:1)

$new_array = array(
   [id] => 4,
   [name] => pop
);


$get_updated_array_id = $update_array[id];

for($x = 0; $x <= sizeof($base_array); $x++){
    $target = $base_array[$x]['id'];
    if($get_updated_array_id == $target){
        $base_array[$x] = $new_array;
    }
}

答案 2 :(得分:1)

//PHP >= 5.3

array_walk($base_array, function (& $target) use ($update_array) {
    if ($target['id'] == $update_array['id']) {
        $target = $update_array;
    }
});