[英]Can you force PHP to view a numeric key as an associative array key?
关联数组有一个奇怪的问题。 这段代码:
$sql = DB::select('id','process_id')->from('field')->order_by('process_id')->order_by('sort_order');
$query = $sql->execute();
foreach($query->as_array() as $row){
$results[$row['id']] = $this->get_field($row['id']);
}
使用数字键创建一个数组。 在我的开发环境中,数组被视为一个关联数组,并且与从查询构建的数组完全相同。 但是,在生产中,它将密钥视为一个数字并根据ID进行排序。 如果我强制PHP考虑关键关联:
$results["a".$row['id']] = $this->get_field($row['id']);
它使用MySQL排序。 不幸的是,虽然有很多代码依赖于密钥只是ID。
有没有人想过为什么服务器之间可能存在差异? 任何解决方法的想法?
也许尝试将其作为字符串投射?
$results[(string)$row['id']] = $this->get_field($row['id']);
或者如果您关心的只是订单,只需将它们作为正常列表放入:
$results[] = $this->get_field($row['id']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.