<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Array Helper : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Array Helper
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Array Helper</h1>

<p>The Array Helper file contains functions that assist in working with arrays.</p>


<h2>Loading this Helper</h2>

<p>This helper is loaded using the following code:</p>
<code>$this->load->helper('array');</code>

<p>The following functions are available:</p>

<h2>element()</h2>

<p>Lets you fetch an item from an array. The function tests whether the array index is set and whether it has a value. If
a value exists it is returned. If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter. Example:</p>

<code>
$array = array('color' => 'red', 'shape' => 'round', 'size' => '');<br />
<br />
// returns "red"<br />
echo element('color', $array);<br />
<br />
// returns NULL<br />
echo element('size', $array, NULL);
</code>


<h2>random_element()</h2>

<p>Takes an array as input and returns a random element from it. Usage example:</p>

<code>$quotes = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"I find that the harder I work, the more luck I seem to have. - Thomas Jefferson",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Don't stay in bed, unless you can make money in bed. - George Burns",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"We didn't lose the game; we just ran out of time. - Vince Lombardi",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"If everything seems under control, you're not going fast enough. - Mario Andretti",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Reality is merely an illusion, albeit a very persistent one. - Albert Einstein",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Chance favors the prepared mind - Louis Pasteur"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
echo random_element($quotes);</code>


<h2>elements()</h2>

<p>Lets you fetch a number of items from an array. The function tests whether each of the array indices is set. If an index does not exist
it is set to FALSE, or whatever you've specified as the default value via the third parameter. Example:</p>

<code>
$array = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'radius' => '10',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'diameter' => '20'<br />
);<br />
<br />
$my_shape = elements(array('color', 'shape', 'height'), $array);<br />
</code>

<p>The above will return the following array:</p>

<code>
array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'height' => FALSE<br />
);
</code>

<p>You can set the third parameter to any default value you like:</p>

<code>
$my_shape = elements(array('color', 'shape', 'height'), $array, NULL);<br />
</code>

<p>The above will return the following array:</p>

<code>
array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;'color' => 'red',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'shape' => 'round',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'height' => NULL<br />
);
</code>

<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models. This prevents users from
sending additional POST data to be entered into your tables:</p>

<code>
$this->load->model('post_model');<br />
<br />
$this->post_model->update(elements(array('id', 'title', 'content'), $_POST));
</code>

<p>This ensures that only the id, title and content fields are sent to be updated.</p>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp; <a href="../libraries/zip.html">Zip Encoding Class</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="compatibility_helper.html">Compatibility Helper</a></p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
</div>

</body>
</html>