如何从数组键中删除前导零

时间:2017-07-30 21:17:31

标签: php mysql codeigniter

我正在使用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?

2 个答案:

答案 0 :(得分:5)

你可以这样做(注意转换为int):

import UIKit

class CellData: UITableViewCell {

    @IBOutlet weak var workoutNameLabel: UILabel!
    @IBOutlet weak var numberOfSetsNumberLabel: UILabel!
    @IBOutlet weak var numberOfRepsNumberLabel: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

答案 1 :(得分:2)

我猜是因为你有substr(..., 8,2 )我认为这是2017-07-30之类的完整日期或类似的东西。
这意味着您可以使用date()来操作数据。

$cal_data[date("j", $row->date)] = $row->data;

日期(“j”)是没有前导零的天数 http://php.net/manual/en/function.date.php