note 82626 added to ref.array

From: 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

« previous php.notes (#138514) next »