在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。一个人失踪 - 结构,格式,没有特殊字符或其他方面没有变化。