数组辅助函数

数组辅助函数文件包含了一些帮助你处理数组的函数。

加载辅助函数

该辅助函数通过下面的代码加载:

  1. $this->load->helper('array');

可用函数

该辅助函数有下列可用函数:

  • element($item, $array[, $default = NULL])

参数:

  • $item (string) — Item to fetch from the array
  • $array (array) — Input array
  • $default (bool) — What to return if the array isn't valid返回:NULL on failure or the array item.返回类型:mixed

该函数通过索引获取数组中的元素。它会测试索引是否设置并且有值,如果有值,函数将返回该值,如果没有值,默认返回 NULL 或返回通过第三个参数设置的默认值。

示例:

  1. $array = array(
  2. 'color' => 'red',
  3. 'shape' => 'round',
  4. 'size' => ''
  5. );
  6.  
  7. echo element('color', $array); // returns "red"
  8. echo element('size', $array, 'foobar'); // returns "foobar"
  • elements($items, $array[, $default = NULL])

参数:

  • $item (string) — Item to fetch from the array
  • $array (array) — Input array
  • $default (bool) — What to return if the array isn't valid返回:NULL on failure or the array item.返回类型:mixed

该函数通过多个索引获取数组中的多个元素。它会测试每一个索引是否设置并且有值,如果其中某个索引没有值,返回结果中该索引所对应的元素将被置为 NULL ,或者通过第三个参数设置的默认值。

示例:

  1. $array = array(
  2. 'color' => 'red',
  3. 'shape' => 'round',
  4. 'radius' => '10',
  5. 'diameter' => '20'
  6. );
  7.  
  8. $my_shape = elements(array('color', 'shape', 'height'), $array);

上面的函数返回的结果如下:

  1. array(
  2. 'color' => 'red',
  3. 'shape' => 'round',
  4. 'height' => NULL
  5. );

你可以通过第三个参数设置任何你想要设置的默认值。

  1. $my_shape = elements(array('color', 'shape', 'height'), $array, 'foobar');

上面的函数返回的结果如下:

  1. array(
  2. 'color' => 'red',
  3. 'shape' => 'round',
  4. 'height' => 'foobar'
  5. );

当你需要将 $_POST 数组传递到你的模型中时这将很有用,这可以防止用户发送额外的数据被写入到你的数据库。

  1. $this->load->model('post_model');
  2. $this->post_model->update(
  3. elements(array('id', 'title', 'content'), $_POST)
  4. );

从上例中可以看出,只有 id、title、content 三个字段被更新。

  • randomelement($array_)

参数:

  • $array (array) — Input array返回:A random element from the array返回类型:mixed

传入一个数组,并返回数组中随机的一个元素。

使用示例:

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