我是Laravel的新手,我有一個小問題,就是我在DB中的列應該在特定的表格中存盤13個數字。 這個表格要在每3個數字后面加上空格,除了最后4個數字。
例如。 1234567891234 它應該以下列格式存盤。 123 456 789 1234
謝謝
uj5u.com熱心網友回復:
如果你的資料庫中這個欄位的列型別是數字,你將不能用空格來存盤這個值。
就是說,回答你的問題:
$num = 1234567891234。
$iterations = (strlen($num) - 4) / 3。
for($i = 0; $i < $iterations; $i ) {
$parts[] = substr($num, $i * 3, 3) 。
}
$parts[] = substr($num, -4, 4) 。
$formatted = implode(' '/span>, $parts)。
uj5u.com熱心網友回復:
你可以在不對其進行格式化的情況下存盤該值,并在從資料庫中檢索該值時即時進行格式化處理。你可以用下面的代碼來實作它。
<?php
$str = '1234567891234'/span>;
$formatted_no = get_formatted_no($str)。
echo $formatted_no;
function get_formatted_no($str) {
$re = '/(w{3})(w{3})(w{4})/m';
preg_match_all($re, $str, $matches) 。
$matches = array_filter($matches, function($key>){ return $key; }, array_filter_use_key)。
return array_reduce($matches, function($accumulator, $item) {
return $accumulator .= $accumulator ? ' ' . current($item) : current($item) 。
}, ''/span>)。)
盡管如此,當你希望進行格式化時,這完全取決于你。你可以使用上述相同的代碼,在將字串存盤到資料庫之前對其進行格式化,這樣就不需要每次從資料庫中檢索時對其進行格式化。不用說,你將需要用這種方法將db中的列的型別改為varchar。
我甚至還附上了一個沙盒鏈接供你玩耍
<。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/320615.html
標籤:
