Php 数组\多维数组的推送

Php 数组\多维数组的推送,php,arrays,Php,Arrays,我有一个数组,如下所示: $sql_commands_to_run= Array ( [0] => ALTER TABLE `live`.`master_table3`]} {[ADD COLUMN `con` varchar(25) NULL; [1] => ALTER TABLE `live`.`master_table_2`]} {[MODIFY COLUMN `mobile2` varchar(15), ADD UNIQUE(`m

我有一个数组,如下所示:

$sql_commands_to_run=    Array
    (
        [0] => ALTER TABLE `live`.`master_table3`]} {[ADD COLUMN `con` varchar(25) NULL;
        [1] => ALTER TABLE `live`.`master_table_2`]} {[MODIFY COLUMN `mobile2` varchar(15), ADD UNIQUE(`mobile2`);
        [2] => ALTER TABLE `live`.`master_table_2`]} {[MODIFY `type2` varchar(10)  NOT NULL;
        [3] => ALTER TABLE `live`.`master_table_2`]} {[MODIFY COLUMN `type2` varchar(10);
        [4] => ALTER TABLE `live`.`master_table_2`]} {[ADD COLUMN `email2` varchar(255);
    )
我想将多个alter查询合并到每个表的一个查询中

Array
(
    [0] => ALTER TABLE `live`.`master_table3` ADD COLUMN `con` varchar(25) NULL;
    [1] => ALTER TABLE `live`.`master_table_2` MODIFY COLUMN `mobile2` varchar(15), ADD UNIQUE(`mobile2`),MODIFY `type2` varchar(10)  NOT NULL,MODIFY COLUMN `type2` varchar(10),ADD COLUMN `email2` varchar(255);
)
为了实现这一点,我正在尝试通过修改分离表名

Array(
['ALTER TABLE `live`.`master_table3`'] => Array(
                                            [0] => 'ADD COLUMN `con` varchar(25) NULL'
                                            ),
['ALTER TABLE `live`.`master_table_2`'] => Array(
                                                [0] => 'MODIFY COLUMN `mobile2` varchar(15)',
                                                [1] => 'ADD UNIQUE(`mobile2`)',
                                                [2] => 'MODIFY `type2` varchar(10)  NOT NULL',
                                                [3] => 'MODIFY COLUMN `type2` varchar(10)',
                                                [4] => 'ADD COLUMN `email2` varchar(255)'
                                                )                                       
)
以下是我正在尝试的:

$merger = array();
foreach($sql_commands_to_run as $sql_command){            
            $temp_arr = explode("]} {[",$sql_command);            
            array_push($merger["'".$temp_arr[0]."'"],$temp_arr[1]);
        }

但我不擅长数组。请,如有任何帮助,我们将不胜感激。

使用array\u push with更改线路

$merger[$temp_arr[0]][] = $temp_arr[1];

使用数组更改行\u使用

$merger[$temp_arr[0]][] = $temp_arr[1];

不要使用array\u push()只需设置值

$merger = array();
foreach($sql_commands_to_run as $sql_command){            
        $temp_arr = explode("]} {[",$sql_command);            
        $merger[$temp_arr[0]][]=$temp_arr[1];
}
不要使用array_push()只需设置值

$merger = array();
foreach($sql_commands_to_run as $sql_command){            
        $temp_arr = explode("]} {[",$sql_command);            
        $merger[$temp_arr[0]][]=$temp_arr[1];
}

$merge[$temp_arr[0]][]=$temp_arr[1]
而不是数组您拥有的源数组真是一团糟,我大致可以看到您正在尝试做什么,但是
$sql\u commands\u to\u run
中保存的数据远远不理想。
$sql\u命令\u to\u run
从何而来?请给我们看一下代码也许你应该在@splash58写下这个答案为什么不干脆
str\u replace(']}{[','$sql\u commands\u to\u run)
?哦,我明白了,你希望每个表有一个查询。
$merge[$temp\u arr[0]][=$temp\u arr[1]
而不是数组你拥有的源数组真是一团糟,我大致可以看出你在尝试做什么,但是
$sql\u commands\u to\u run
中保存的数据远非理想。
$sql\u commands\u to\u run
从何而来?请向我们展示代码也许你应该把它写下来作为一个答案@splash58为什么不只是
stru repace(']}{[',''.$sql\u命令\u to \u运行)
?哦,我明白了,您希望每个表有一个查询。很乐意帮忙。祝您好运!很乐意帮忙。祝您好运!