[英]How to remove leading zeros from array keys
我正在使用Codeigniter 3(日歷類),我有這個函數來獲取日歷數據(該表只有一個日期列和一個數據列):
function get_calendar_data($year, $month) {
$query = $this->db->select('date, data')->from('calendar')->like('date', "$year-$month", 'after')->get();
$cal_data = array();
foreach ($query->result() as $row) {
$cal_data[substr($row->date,8,2)] = $row->data;
}
return $cal_data;
}
它工作正常並生成一個月的數組,$ cal_data,包括作為鍵和值的天數(在這種情況下是顏色的名稱)和var_dump通常如下所示:
array (size=6)
26 => string 'amber' (length=5)
27 => string 'red' (length=3)
28 => string 'red' (length=3)
25 => string 'amber' (length=5)
'04' => string 'red' (length=3)
'07' => string 'red' (length=3)
日歷需要的。 但是,由於日歷似乎沒有需要它們,因此天數有前導零。 因此值不會顯示04和07.作為測試,我重寫了foreach循環說:
$cal_data[substr($row->date,9,1)] = $row->data;
所以鍵只能獲取日期字符串的最后一個字符,在這種情況下,4和7的值確實顯示正確。
有沒有一種簡單的方法來刪除前導零,所以鍵是4和7?
你可以這樣做(注意轉換為int):
foreach ($query->result() as $row) {
$cal_data[(int)substr($row->date,8,2)] = $row->data;
}
我猜你既然SUBSTR(...,8,2),我認為這是一個完整的日期像2017年7月30日或類似的東西。
這意味着您可以使用date()來操作數據。
$cal_data[date("j", $row->date)] = $row->data;
日期(“j”)是沒有前導零的日期編號。
http://php.net/manual/en/function.date.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.