繁体   English   中英

你能强制PHP将数字键视为关联数组键吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM