PHP if条件添加和删除无需完全重建

标签 php if-statement

我正在创建一个 PostgreSQL 表列管理工具来快速添加、删除和重新排列表中的列。到目前为止,它在简单的场景中运行良好,我只需将一列添加到末尾或删除现有列。我的每个 if 条件都会调用其他函数来追加新列、删除现有列或重建整个表;就我目前的测试而言,这些功能运行良好。

如何创建一个 if 条件,在其中调用 append 函数删除删除函数而不是重建函数?

我有几个数组可以帮助我确定逻辑,尽管我在解决它时遇到了困难。以下是列名称数组,在这种情况下,我不应该调用 rebuild 函数,需要调用 append 函数>和删除功能。

在这种情况下,我要做的就是删除 id_2 列并添加 id_4 列,这样就无需重新排列顺序或列。

$columns_db - PostgreSQL 数据库中存在的列。

Array
(
    [0] => id
    [1] => id_1
    [2] => id_2
    [3] => id_3
)

$columns_updated - 我们要保留的数据库中的列。

Array
(
    [0] => id
    [1] => id_2
    [2] => id_3
)

$columns_subscribed - 全部完成后列应该出现的最终方式,

Array
(
    [0] => id
    [1] => id_2
    [2] => id_3
    [3] => id_4
)

$columns_slice

$columns_slice = array_slice($columns_submitted,0,(count($columns_updated) - 1),true);

Array
(
    [0] => id
    [1] => id_2
)

$columns_remove - 将删除的列。

Array
(
    [1] => id_1
)

$columns_append - 将创建的列。

Array
(
    [id_4] => bigint
)

最佳答案

  1. 首先执行列删除
  2. implode 删除后的列列表 ($before = implode($columns_updated);)
  3. implode 添加后的列列表 ($after = implode($columns_subscribed))
  4. if (strpos($after, $before) === 0) {/* 添加在最后 */}

确保您use the === operator .

作为一句台词:

$rebuild = (strpos(implode($columns_submitted), implode($columns_updated)) !== 0);

关于PHP if条件添加和删除无需完全重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201291/

相关文章:

php - 如何将路径目录作为参数发送到 php 脚本?

jquery - 使用 if/else 显示/隐藏带复选框的 div

C中使用switch语句将普通数字转换为罗马数字

php - 我需要的数组排列

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 在选择更改时更新表

java - 我不知道输入是否为空要打印

arrays - 多个if条件excel,矩阵结构

r - 匹配子集中的一个值并返回一个值

php - Laravel CSRF 中间件不检查 X-CSRF-TOKEN 请求 header