php将带有方括号的数组键替换为数组值

时间:2016-12-22 10:44:49

标签: php arrays string replace

我有一个包含mysql查询的字符串:

$string = "UPDATE [table1] SET value = 1 WHERE id = 1";

我想用这个数组的值改变[table1]:

$table['table1']='pages';
$table['table2']='products';
etc

结果应为:

mysql_query( $string ); // "UPDATE pages SET value = 1 WHERE id = 1"

我已经尝试了以下但没有:

mysql_query( str_replace( '[', '$table[', $string ));
mysql_query( str_replace( array_keys( "[$table]" ), array_values( $table ), $string ));
mysql_query( str_replace( array_keys( "[".$table."]" ), array_values( $table ), $string ));

修改 这种方式有效,但没有最简单的方法吗?

str_replace( explode( ',', ( '['.implode( '],[',array_keys( $table ) ) .']' ) ), $table, $string );

2 个答案:

答案 0 :(得分:1)

这个怎么样?

$table['table1']='pages';
$table['table2']='products';

$string = "UPDATE [table1] SET value = 1 WHERE id = 1";

foreach($table as $key => $value){
    $string = str_replace('['.$key.']', $value, $string);
}

答案 1 :(得分:0)

简单方法怎么样?

$string = "UPDATE ".$table['table1']." SET value = 1 WHERE id = 1";