Guest User

Untitled

a guest
Oct 24th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. function array_multidim_set($arr, $keys, $value){
  2. switch(count($keys)){
  3. case 1:
  4. $arr[$keys[0]] = $value;
  5. break;
  6. case 2:
  7. $arr[$keys[0]][$keys[1]] = $value;
  8. break;
  9. case 3:
  10. $arr[$keys[0]][$keys[1]][$keys[2]] = $value;
  11. break;
  12.  
  13. ...and so on...
  14.  
  15. }
  16.  
  17. return $arr;
  18. }
  19.  
  20. function array_multidim_set(&$arr, $keys, $value){
  21. $rv = &$arr;
  22. foreach($keys as $pk)
  23. {
  24. $rv = &$rv[$pk]; // Unused reference [ex. $rv['key1'] then $rv['key1']['key2'] .. so on ] - actually assigned to $target by reference
  25. }
  26. $rv = $value;
  27. }
  28.  
  29. $target = ['test' => 'test'];
  30.  
  31. array_multidim_set($target, ['key1', 'key2', 'key3'], 'foo');
  32. echo '<pre>';
  33. print_r($target);
  34.  
  35. Array
  36. (
  37. [test] => ttt
  38. [key1] => Array
  39. (
  40. [key2] => Array
  41. (
  42. [key3] => foo
  43. )
  44.  
  45. )
  46.  
  47. )
Add Comment
Please, Sign In to add comment