使用数字作为关联数组键

时间:2012-03-12 15:28:32

标签: php arrays

它似乎有效,但感觉不对,我认为是。

是不是错了?

如果是这样,我目前有一个数组,其中键是mysql数据库id,值是它们的值。

让密钥为"record_"+$id然后explode()密钥并从中获取id会不会更好?

或者可以设置自己的数组键,php会假设它们是关联数组键而不是索引吗?

由于

1 个答案:

答案 0 :(得分:5)

一些内置的PHP函数(如array_merge / array_multisort)将重新索引您的数组:

  

array_merge()如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。如果,   但是,数组包含数字键,后面的值不包含   覆盖原始值,但会被追加。价值观   带数字键的输入数组将以递增方式重新编号   键在结果数组中从零开始。


  

array_multisort()可用于一次对多个数组进行排序,或者按一个或多个维对多维数组进行排序。联想   (字符串)键将被保留,但数字键将被重新编入索引。

我建议你不要这样做,改为使用正确的值,或者至少用短_作为前缀:

foreach ($array as $key => $value)
{
    $id = ltrim($key, '_');

    // do stuff with the actual $id
}