分配从PHP之一关联数组值到另一个数组
-
22-08-2019 - |
题
我有一个可变$params
从数据库中获取数据:
$params = mssql_fetch_array($result)
据我所知,它是关联数组。我想另一个数组$tempParams
持有本阵列的价值。我可以使用下面的语句指派方式:
$tempParams = $params
另外,我还需要一个单独的语句来声明和值赋值给变量$ tempParams,或者可以把这些分开?
还有一个问题,我想问的是,以下说法正确的; 虽然$ tempParams中包含的值;
$params['column1'] = $tempParams['newColumns']
解决方案
是,
$tempParams = $params;
从$ PARAMS复制所有值$ tempParams。
$params['foo'] = 'bar';
echo $tempParams['foo']; //nothing
$tempParams = $params;
echo $tempParams['foo']; //'bar'
$params['foo'] = 'hai';
echo $tempParams['foo']; //still: 'bar'
其他提示
至于你的阵列是否是关联的,阅读 mysql_fetch_array() <文档/ p>
至于转让的话,你实际上可以把它放在一个语句
$tempParams = $params = mysql_fetch_array( $result, MYSQL_ASSOC );
这个简单的测试表明,当你做这样的任务,这两个变量是单独的副本,而不是引用。
$a = $b = array( 1, 2, 3 );
$b[1] = 'x';
echo '<pre>';
print_r( $a );
print_r( $b );
echo '</pre>';
是,则=操作者将所述阵列精确地复制。
您可以检查一下自己:
// get the $params from DB
print_r ($params); // will output array contents
$tempParams = $params;
print_r ($tempParams); // must be the same as above
有是在PHP“声明”变量没有这样的事情,但是如果你要说,$ tempParams是一个数组分配的地方之前,你可以做这样的:
$tempParams = array ();
这将使$ tempParams阵列与内部没有元件。
有关阵列,数字和关联,=操作将使变量的副本。而这两个变量是完全相互独立的。然而,随着处理的对象的情况下,操作者=创建的对象的引用,两个变量指向完全相同的对象。
当然可以,但是这可能会导致某种混淆的,如果你要处理的对象(具体取决于哪个版本的PHP您正在使用)。
为什么要阵列复制?你能不能用相同的原始变量工作($ params)方法?
不隶属于 StackOverflow