note 82626 added to ref.array
| From: | alan at zeroasterisk dot com | Date: | Fri, 18 Apr 2008 19:40:34 +0000 |
| Subject: | note 82626 added to ref.array | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-138514@lists.php.net to get a copy of this message | ||
Feel free to use the following function which takes a multi-dim array as an input and it returns
hidden <input/> elements, named with square brackets and ready to post.
<?php
/***
* makehiddeninputs()
* -- loops through a multi-dimensional array, and creates appropriate nested inputs
* @param $input mixed (array|string)
* @param $k_prefix string - usually can be left blank
* @param $isfinal bool - should be left as true
* @return string (all input fields as hidden)
* @author alan blount - http://zeroasterisk.com
*/
function makehiddeninputs($input,$k_prefix='',$isfinal=true) {
if (is_array($input)) {
$inputs = array();
foreach($input as $k => $v) {
if (!empty($k_prefix)) {
$newkey = $k_prefix.'['.$k.']';
} else {
$newkey = $k;
}
$r = $this->makehiddeninputs($v,$newkey,false);
if (is_array($r)) {
$inputs[] = implode('',$r);
} else {
$inputs[] = $r;
}
}
if ($isfinal) {
return implode('',$inputs);
} else {
return $inputs;
}
} else {
return ''.
'<input type="hidden" '.
'name="'.str_replace('"','\"',$k_prefix).'"
'.
'value=\''.str_replace("'","\\'",$input).'\'/>'.
'';
}
}
// example usage
$data_array = array(
'data'=> array(
'nest1'=> array('name'=>'alan','site'=>'http://zeroasterisk.com'),
'nest2'=> array('name'=>'bubba','site'=>'http://php.net'),
)
);
$inputs = makehiddeninputs($data_array);
// outputs hidden inputs with attributes like:
// name="data[nest1][name]" value="alan"
// name="data[nest2][name]" value="bubba"
?>
----
Server IP: 64.71.164.2
Probable Submitter: 68.90.49.249
----
Manual Page -- http://www.php.net/manual/en/ref.array.php
Edit -- https://master.php.net/note/edit/82626
Del: integrated -- https://master.php.net/note/delete/82626/integrated
Del: useless -- https://master.php.net/note/delete/82626/useless
Del: bad code -- https://master.php.net/note/delete/82626/bad+code
Del: spam -- https://master.php.net/note/delete/82626/spam
Del: non-english -- https://master.php.net/note/delete/82626/non-english
Del: in docs -- https://master.php.net/note/delete/82626/in+docs
Del: other reasons-- https://master.php.net/note/delete/82626
Reject -- https://master.php.net/note/reject/82626
Search -- https://master.php.net/manage/user-notes.php