Webmaster Forum
Go Back   Webmaster Forums UK SEO SEM Webmaster Community Forum - UKWW > Web Design and Website Development > Programming > PHP Forum
Register FAQ Members List Downloads Calendar Today's Posts Webmaster Resources Webmaster Blogs

UK Web Hosting
UK Web Hosting
Website Hosting
Website Hosting
UK One Way
UK One Way
Free Website Thumbnail Creator
 
Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-07-2008, 02:42 PM
dman_2007
Guest
 
Posts: n/a
iTrader: / %
Default Tip : apply a function to each array element

If you wish to apply a function to each array element then you can use array_walk function to automate the task instead of using foreach to loop through array and call each function manually. For example :

Code:
<?php
  function test_function($value, $key)
  {
    echo $key, ' => ', $value, '<br />';  
  }
  
  $array_var = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
  
  array_walk($array_var, 'test_function');
?>
If you wish to pass any data to the call back function you can do so by passing that data as third parameter to array_walk function. For example,

Code:
<?php
  function show_exponent(&$value, $key, $pow)
  {
    echo $value, ' => ', pow($value, $pow), '<br />';  
  }
  
  $array_var = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

  array_walk($array_var, 'show_exponent', 2);
?>
Another thing to note is that the changes made to the array elements in the callback function doesn't affect the original array. If you wish to alter the original values of array elements in the callback function then pass array elements to the callback function as reference. For example,

Code:
<?php
 
 function show_exponent(&$value, $key, $pow)
 {
   $value =  pow($value, $pow);  
 }
  
  $array_var = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

  array_walk($array_var, 'show_exponent', 2);
  
  print_r($array_var);
  
?>
the code given above will print the changed array.

If your array elements are array themselves and you want to apply the callback function to their elements as well then use array_walk_recursive function.
Digg this Post!Add Post to del.icio.usStumble this Post!Wong this Post!
Reply With Quote
Reply

Bookmarks

Webmaster Resources
UK Web Hosting
UK WW SEO Tools
Free site submission
Web Directory
 
Advertisement
Get top 10 exposure
 
Site Of the Month
BizzFace
Nominate site of the month
 
Tag Cloud
2 columns admins wanted advice ajax article submistion bid bidding directory butterflies chip maker coda community concentration coupon code digg directories submission directory domain for sale domain name dzone ecommerce ecommerce poll forum forum posting free free download free hosting free web hosting generate revenue google google serps instant messenger internet internet spending james in london jokes keywords limitations lightbox linux and windows server mod modeling moderators wanted monopoly mootools music online newbie nominate not possible online retail online spending owg in london paid forum posting photography php reddit review review website scripts search engine seo site promotion skype social bookmarking special discount thank you theme web hosting website of the month win a network xhtml yahoo

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump



All times are GMT. The time now is 10:07 PM.

UK Webmaster World Forums - Internet marketing, web development, domain names, SEO contest and discussuons.
Subscribe to our feeds   Subscribe to our feeds

Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151