我有一个简单的问题。构建关联数组时,键转换规则意味着包含有效整数的字符串将转换为整数类型。例如。键“8”实际上将存储在8下。(另一方面,“08”将不会被强制转换,因为它不是有效的十进制整数。)例如参见:http://php.net/manual/en/language.types.array.php
我遇到的问题是我的键是混合整数和字符串..这意味着当构建关联数组时,所有键都会重新排序,数字键首先出现在字符串之前。这是我在控制台日志中获得的示例:
...
2032: "9371.84"
2033: "9351.60"
2034: "9331.36"
2035: "9311.12"
ID: "1"
Misc1: "Russian Federation - Conventional"
Misc2: "RUS.Con1"
Misc3: "4"
Misc4: ""
... etc.
如何避免此问题,以便关联数组不会重新排序我的键?
作为一个FYI,这就是我在PHP中生成数组的方式:
while ($array = mysqli_fetch_assoc($result)) {
$experiment[] = $array;
};
感谢您的时间, -G。
答案 0 :(得分:1)
在PHP中为数组添加索引,如下所示:
$array[] = ['another array'];
将增加索引。
但是,您可以为键指定字符串,或将整数转换为字符串。
答案 1 :(得分:0)
我发现的问题的解决方法是避免关联数组结构。这就是我的循环现在的样子:
while ($array = mysqli_fetch_assoc($result)) {
$experiment[0] = array_keys($array);
$experiment[] = array_values($array);
};
令人讨厌的是$experiment[0] = array_keys($array);
无法成功循环...但至少我得到了我正在寻找的结果,并且键不会被关联数组强制转换和重新排序。
如果有人知道如何避免$experiment[0]
的不必要的循环,请告诉我: - )