Formatea un número con miles agrupados

Tengo la siguiente función:

function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return __('0 View','mm'); } return $count. __(' Views','mm'); } 

¿Cómo hago para que formatee un número para incluir una coma en el lugar de las milésimas? Por ejemplo, 50000 debería convertirse en 50,000.

Solutions Collecting From Web of "Formatea un número con miles agrupados"

Use number_format() :

 number_format($number); 

Puedes usar number_format .

Eche un vistazo a number_format .

Por ejemplo:

 $number = 1234.56; // english notation (default) $english_format_number = number_format($number); // 1,235 // French notation $nombre_format_francais = number_format($number, 2, ',', ' '); // 1 234,56 $number = 1234.5678; // english notation without thousands separator $english_format_number = number_format($number, 2, '.', ''); // 1234.57 
 $number=number_format($number); 

El uso de su formato de número fue correcto para obtener el buen formato que está buscando. El problema que creo que se está encontrando con respecto a cambiar el formato en su base de datos es que está formateando el número y volviéndolo a guardar sobre sí mismo.

Por ejemplo:

 $count = 5000; $count = number_format($count); //$count is no longer equal to 5000, it is now a string 5,000 

Intente usar una variable temporal, de esa manera su variable $ count original no cambiará, y cuando vuelva a escribir en la base de datos, seguirá teniendo el formato que desee.

Por ejemplo:

 $count = 5000; $tmpCount = 0; $tmpCount = number_format($count); // $count is still 5000, and $tmpCount now holds the value 5,000. 

Una versión actualizada de su código, supongo que solo quiere que el meta tenga el valor de coma separado

  function setPostViews($postID) { //Set initial variables $count_key = 'post_views_count'; $tmpCount = 0; $count = get_post_meta($postID, $count_key, true); if($count == '') { $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); } else { $count++; //Set tmpCount variable to hold comma separated value $tmpCount = number_format($count); //Comma separated value is passed into your function update_post_meta($postID, $count_key, $tmpCount); } } 

¿Era eso lo que estabas esperando? o si solo desea formatear este número de esta manera cuando se lo muestra al usuario, pero el db debe permanecer correcto (no separado por comas), después de consultar el db, guarde el valor db y cree una variable separada por comas exactamente como yo He hecho arriba. Luego, en cualquier función db, consulte la variable $ count, y en cualquier función de salida del usuario, use la variable $ tmpCount.

Nuevamente, espero que responda su pregunta, si no es así, por favor aclare.