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 . "\"" ; 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 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)); 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? 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. 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! 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! Link to comment https://forums.phpfreaks.com/topic/203359-rtrim-not-trimming/#findComment-1065390 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.