Форматирование числа сгруппированными тысячами

У меня есть следующая функция:

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'); } 

Как сделать его форматированием числа, чтобы включить запятую в тысячное место? Например, 50000 должно стать 50 000.

Используйте number_format() :

 number_format($number); 

Вы можете использовать number_format .

Посмотрите на number_format .

Например:

 $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); 

Ваш формат номера был правильным, чтобы получить хорошее форматирование, которое вы ищете. Проблема, которую я думаю, что вы используете в отношении изменения формата в вашей БД, заключается в том, что вы форматируете номер и сохраняете его самостоятельно.

Например:

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

Попробуйте использовать временную переменную, так что исходная переменная счетчика $ не изменится, и когда вы напишете обратно в базу данных, она по-прежнему будет в нужном формате.

Например:

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

Обновленная версия вашего кода, я предполагаю, что вы хотите, чтобы мета сохраняла значение, разделенное запятой?

  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); } } 

Это то, на что вы надеялись? или если вы хотите только отформатировать этот номер при отображении пользователю, но db останется правильным (не разделенным запятыми), после запроса db сохраните как значение db, так и создайте переменную, разделенную запятой, точно так же, как я «Сделано выше. Затем на любых функциях db ссылайтесь на переменную $ count и на любые функции вывода пользователя, используйте переменную $ tmpCount.

Опять же, я надеюсь, что ответ на ваш вопрос, если это не так, пожалуйста, уточните.