Hi.

Based upon ...

<?php
$name = Null;
$age = Null;
$boundParams = array('name' => &$name, 'age' => &$age);
$records = array();

$name = 'Richard';
$age  = 43;
$records[] = $boundParams;

$name = 'Sally';
$age  = 37;
$records[] = $boundParams;

print_r($records);
?>

outputs Sally twice.

Whilst that is the correct output based upon the code, it is undesired.

I want the boundParams to have the references (the actual data from my
mysqli_stmt::fetch() with bound results), but I want to be able to
copy the values and not maintain the references.


The best I've come up with is ...

<?php
$name = Null;
$age = Null;
$boundParams = array('name' => &$name, 'age' => &$age);
$records = array();


$columns = array_keys($boundParams);

$name = 'Richard';
$age  = 43;
//$records[] = $boundParams;
$records[] = array_combine($columns,
array_map(function($m_Value){return $m_Value;}, $boundParams));

$name = 'Sally';
$age  = 37;
//$records[] = $boundParams;
$records[] = array_combine($columns,
array_map(function($m_Value){return $m_Value;}, $boundParams));

print_r($records);
?>

Is there a more efficient way?
-- 
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to