这是我有的:
public function get_model_by_make($make = null){
$model_data = $this->vehicle_model->get_model($make);
echo json_encode($model_data);
}
public function get_model($make){
$this->db->select('models_id, models_name');
$this->db->where('makes_id', $make);
$models_data = $this->db->get('Models');
$rows = array();
$rows[0] = '-Select-';
foreach($models_data->result() as $value){
$rows[$value->models_id] = $value->models_name;
}
return $rows;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果我将一个0或1传递给get_model_by_make()函数,则返回没有数组键的json数据.
例:
$data = get_model_by_make(1)
echo $data;
Run Code Online (Sandbox Code Playgroud)
结果:
["-Select-","CL","CSX","EL","Integra","Legend","MDX","NSX","RDX","RL","RSX",
"SLX","TL","TSX","Vigor"]
Run Code Online (Sandbox Code Playgroud)
如果传递的数字大于1,则返回如下:
$data = get_model_by_make(2)
echo $data;
Run Code Online (Sandbox Code Playgroud)
结果:
{"0":"-Select-","35":"Alliance","36":"Ambassador","37":"AMX","38":"Classic"}
Run Code Online (Sandbox Code Playgroud)
为什么json_encode不返回0或1的键/值对?如果我var_dump的数据键/值在那里.
我知道之前曾有人问过这个问题,但我找不到确切的答案。
过度使用echo语句是否会减慢最终用户的加载时间?
通过在文件中包含更多echo语句,文件大小会增加,因此我知道这将是一个因素。如果我错了纠正我。
经过一些研究,我知道使用php的ob_start()函数以及提高Apache的SendBufferSize可以减少加载时间,但是据我了解,通过允许php更快地完成/退出,这更多的是减少了php执行时间。 Apache即将退出。
话虽这么说,php确实会更快退出,但这是否意味着php实际上花费了更少的时间来执行,从而在最终用户方面加快了速度?
明确地说,我的意思是,如果我有2个文件,相同的内容,并且每个文件都使用echo语句,而另一个文件使用了插入和脱离php的标准方法(除了文件大小与echo语句的“过度”使用(我猜中原因吗?)之间的差异,哪一个会更快?还是真的没有任何区别?
也许我正在考虑这个问题或正在看这个错误吗?
编辑:我做了一些检查,并找到了一种创建秒表来检查脚本执行时间的方法,并且似乎可以很好地退出。如果有人有兴趣这样做,这里是我现在选择使用的方法的链接。
http://www.phpjabbers.com/measuring-php-page-load-time-php17.html