note 82626 deleted from ref.array by nlopess

From: Date: Sat, 19 Apr 2008 23:13:13 +0000
Subject: note 82626 deleted from ref.array by nlopess
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-138547@lists.php.net to get a copy of this message
Note Submitter: alan at zeroasterisk dot com ---- 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" ?>

« previous php.notes (#138547) next »