bluegray Posted May 30, 2010 Share Posted May 30, 2010 So I'm trying to create a function that builds a string from an array and removes that comma/space on the last element. When examining the output however, comma and space are still there. Help please? var_dump($data) ; //$element_count = count ($data) ; foreach ($data as $ky) { $key = key ($data) ; ?> <p> This is the current key: <?php echo $key ; $keys = "$keys" . "$key, " ; next ($data) ; ?> </p> <?php } rtrim ("$keys", ", ") ; echo "\"" . $keys . "\"" ; Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/ Share on other sites More sharing options...
kenrbnsn Posted May 30, 2010 Share Posted May 30, 2010 Instead of doing it that way, store the keys in a temporary array and then implode the array using a comma as the separator. <?php $tmp = array(); foreach ($data as $ky) { $key = key ($data) ; echo "<p> This is the current key: $key </p>"; $tmp[] = $key; } $keys = implode(',',$tmp); ?> Ken Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065377 Share on other sites More sharing options...
shino Posted May 30, 2010 Share Posted May 30, 2010 You can use array_keys(); http://php.net/manual/en/function.array-keys.php $keys = implode(',',array_keys($data)); Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065386 Share on other sites More sharing options...
bluegray Posted May 30, 2010 Author Share Posted May 30, 2010 Instead of doing it that way, store the keys in a temporary array and then implode the array using a comma as the separator. <?php $tmp = array(); foreach ($data as $ky) { $key = key ($data) ; echo "<p> This is the current key: $key </p>"; $tmp[] = $key; } $keys = implode(',',$tmp); ?> Ken Sweet, that worked, thanks! But do you know why the rtrim was failing? Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065387 Share on other sites More sharing options...
PFMaBiSmAd Posted May 30, 2010 Share Posted May 30, 2010 rtrim() (and most php functions) RETURN the value they produce. You are not assigning that value to $keys, so, $keys simply has the original value in it. Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065388 Share on other sites More sharing options...
bluegray Posted May 30, 2010 Author Share Posted May 30, 2010 You can use array_keys(); http://php.net/manual/en/function.array-keys.php $keys = implode(',',array_keys($data)); Cool! Learned a new function. Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065389 Share on other sites More sharing options...
bluegray Posted May 30, 2010 Author Share Posted May 30, 2010 rtrim() (and most php functions) RETURN the value they produce. You are not assigning that value to $keys, so, $keys simply has the original value in it. Bingo! Thank you! Quote Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065390 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.