スキップしてメイン コンテンツに移動

投稿

1月, 2012の投稿を表示しています

PHP: Immutable Row Update by Delete and Insert Operation

If you would like to realize update rows by only allowing delete and insert rows on DB, set operation might be helpful. For PHP, using array_diff function is really useful for realizing the operation. // we would like to insert '4', '5' and delete '2' in this example. // how to do this? $original_ids = array('1', '2', '3'); $new_ids = array('1', '3', '4', '5'); // one solution // 1) the key point is calculating subtract set. // 2) array_values is used only for re-numbering index. e.g. all index will be 0 origin sequence . // the result will be array(1){ [0] => '4', [0] => '5' } $ids_insert = array_values(array_diff($new_ids, $original_ids)); // the result will be array(1){ [0] => '2' } $ids_delete = array_values(array_diff($new_ids, $original_ids));