20

arrayput

array_put
SYNOPSIS

array_put($v, $keys, $value)

DESCRIPTION

array_put stores $value in the multidimensional array $v at the location designated by the sequence of keys specified by $keys.

A missing array for a key is created automatically.

If an intermediate value is not an array, array_put returns false.

If $keys is not an array or is empty, array_put returns false.

Otherwise, array_put returns $value.

EXAMPLE

To store a value in a multidimensional array:

php > require 'library/dump.php';
php > require 'library/arrayput.php';
php > $arr=array('user' => array('name' => 'izend'));
php > array_put($arr, array('user', 'mail'), 'webmaster@izend.org');
php > dump($arr);
array(1) {
  ["user"] => array(2) {
    ["name"] => string(5) "izend"
    ["mail"] => string(19) "webmaster@izend.org"
  }
}
CODE
  1. function array_put(&$v, $keys, $value) {
  2.     if (!is_array($keys) || empty($keys))
  3.         return false;
  4.  
  5.     $array=null;
  6.  
  7.     foreach ($keys as $k) {
  8.         if (!is_array($v))
  9.             return false;
  10.  
  11.         if (!array_key_exists($k, $v))
  12.             $v[$k] = array();
  13.  
  14.         $array=&$v;
  15.  
  16.         $v = &$v[$k];
  17.     }
  18.        
  19.     return $array ? $array[$k]=$value : false;
  20. }
SEE ALSO

array_get, array_search_assoc

Comments

Your comment:
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip help 2000

Enter a maximum of 2000 characters.
Improve the presentation of your text with the following formatting tags:
[p]paragraph[/p], [b]bold[/b], [i]italics[/i], [u]underline[/u], [s]strike[/s], [quote]citation[/quote], [pre]as is[/pre], [br]line break,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]command[/code], [code=language]source code in c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].