I have a snippet of code that looks something like:
if (is_array($p_sub_values)) {
        foreach ($p_sub_values as $i => $v) {
         $p_sub_values_str[$i] = "'$v'";
        }
        $s = join(',', $p_sub_values_str);
        $r = htmlentities(sprintf($tmp[0], $s, ENT_QUOTES);
}

$tmp[0] in this case contains a string like 'Fred likes %1$s on his %2$s', 
taking advantage of positional substitution with sprintf.

The function call to this snippet can have an optional array passed.  My 
need/desire is to substitute each element of the array into the appropriate 
position with sprintf.  So far I've tried:
$r = htmlentities(sprintf($tmp[0], $s, ENT_QUOTES);
$r = htmlentities(sprintf($tmp[0], ${$s}, ENT_QUOTES);

and a few other bits and pieces, all to no avail (error is about not enough 
arguments).

Is there any way to accomplish this in PHP, or do I need to roll my own 
substitution code?  The array can obviously be anything from a single value 
to 'unlimited' (though in practice will probably be less than 5).

-- 
My mind not only wanders, it sometimes leaves completely.

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

Reply via email to