php随机丢失数组条目

时间:2015-07-22 15:04:30

标签: php arrays

在SQL调用之后,php正在存储一个带有服务列表的2D关联数组。然后我将其拆分为两个不同的阵列(一个用于匹配"友好"名称(即;预定义服务)的服务,另一个用于未指定的服务。

在此过程中,php似乎随机抛出数组条目 - 在拆分开始之前。

代码:

        $tmp_results_friendly = array();
        $tmp_results_uncategorised = array();
        foreach ($results as $result) {
            //var_dump($result);
            if ((int)$result['friendly_service_id'] != 0) {
                $tmp_results_friendly[] = $result;
            } else {
                $tmp_results_uncategorised[] = $result;
            }
        }

在注释掉var_dump时,条目可能会随机丢失。 $ result的var_dump将显示所有内容。它通常是具有不等于0的friendly_id且丢失的服务。

数组中没有重复项,也没有任何重写条目。在foreach循环之前的var_dump将返回所有内容 - 但是当我们进入foreach循环时,它似乎直接消失了。

我不知道是什么原因造成的 - 有没有人有任何想法?

编辑:添加其他代码以检查数组长度;

        $tmp_results_friendly = array();
        $tmp_results_uncategorised = array();
        echo "<br/>Results count is: " . count($results);
        $i = (int) 0;
        foreach ($results as $result) {
            //var_dump($result);
            $i++;
            if ((int)$result['friendly_service_id'] != 0) {
                $tmp_results_friendly[] = $result;
            } else {
                $tmp_results_uncategorised[] = $result;
            }
        }
        echo "<br/>Counted in foreach is: {$i}";

由此产生;

Results count is: 17
Counted in foreach is: 16

我还在foreach之前和之后序列化了数组;在foreach之前,我们再次看到17个结果。之后,16。一个人失踪 - 结构,格式,没有特殊字符或其他方面没有变化。

0 个答案:

没有答案