Inigo Posted November 20, 2010 Share Posted November 20, 2010 Hi guys, I wonder if anyone could help me. I have a string of data pertaining to images that is being passed from an ajax function. It is full of ID:VALUE pairs like this- title1:something,caption1:blah blah blah,align1:left,width1:100,height1:100,title2:something else,caption2:more blah blah,align2:right,width2:300,height2:100 etc. (The digit after each id relates to the image- a crude way of data stuffing..) I've exploded this string by means of the comma separator into the $field_values array, so that it's now arranged like this- $field_values[0] = 'title1:something' $field_values[1] = 'caption1:blah blah blah' $field_values[2] = 'align1:left' ...etc. With me so far? Right, so now I'm going to extract the id and value from each pair and put it into a new array of $image_data, where the first array key of $image_data is the no. of the image..like this- foreach($field_values as $pair){ if(substr($pair['id'], -1) == '1'){ $field_id = substr($pair['id'],0,-1); $image_data[1][$field_id] = $pair['value']; } } ... And then I'd do the same for all the id:value pairs for image no.2. HOWEVER... I'd like to speed things up so that when I'm searching the $field_values array for the 2nd and 3rd image ID:VALUE pairs, it's not wasting time by cycling through all the pairs that I've already identified and put into the $image_data array. I thought I could use unset(), but I'm not sure quite how to implement it here. I hope that my question is intelligible, and that somebody might be able to help me..? Many Thanks! Quote Link to comment Share on other sites More sharing options...
BlueSkyIS Posted November 20, 2010 Share Posted November 20, 2010 if i understand correctly, this might work for you. foreach ($field_values as $pair) { // Break the $pair into lable/value $pair_parts = explode(':', $pair); // Get the text value and number value from the left side $field_id = preg_replace("/[\d]/","",$pair_parts[0]); // all letters $img_id = preg_replace("/[\D]/","",$pair_parts[0]); // all numbers $image_data[$img_id][$field_id] = $pair_parts[1]; } Quote Link to comment Share on other sites More sharing options...
Inigo Posted November 20, 2010 Author Share Posted November 20, 2010 Ah, like it! thanks BlueSky, yes that looks like a much more efficient way of doing it. Much appreciated!!! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.