【发布时间】:2017-08-12 23:05:55
【问题描述】:
我有以下几行代码从我的数据库中获取一些数据。我需要引用数据的一些特定内容,但我遇到了重复数组键的问题。由于项目的复杂性,我不想使用 SQL 语句对数据进行排序。
在检查数组的指针后,生成了以下内容。 ( [0] => 0 ) 数组 ( [0] => 0 ) 数组 ( [0] => 0 ) 数组 ( [0] => 0 ) 数组 ( [0] => 0 ) 数组 ( [0] = > 0 ) 数组 ( [0] => 0 ) 数组 ( [0] => 0 )
打印数组的样本: ( [0] => 3371450.18 ) 数组 ( [0] => 54459051.95 ) 数组 ( [0] => 210382.52 ) 数组 ( [0] => 6860440.01 ) 数组 ( [0] => 13131358.12 )
由于所有的数组键都是重复的,一些 PHP 数组函数(如 (array_sum, array_max) 等)确实在数组上工作,而且它变得非常令人沮丧。
我想知道这是否是因为 while 循环。 while 循环中的数组指针是否总是重复的。 `
if(isset($_SESSION['sess']) && !empty(isset($_SESSION['sess']))){
echo "Session id is ".$_SESSION['sess']." exist";
$currentSession = $_SESSION['sess'];
$sql = "SELECT * FROM `loanbook` WHERE LoanBookSessionId='$currentSession'";
$result = mysqli_query($dbs,$sql);
$teamselection = "SELECT * FROM `Teams`";
$teamresult = mysqli_query($dbs,$teamselection);
while($row = mysqli_fetch_array($result)){
?>
<?php
$Sn[] = $row['Id'];
$Team = $row['Team'];
$CounterClass = $row['CounterPartyClassification'];
$GrossL = $row['GrossLoan'];
$CollType = $row['CollateralType'];
print_r(array_keys(array($GrossL)));
print_r((array($GrossL)));
}
?>`
【问题讨论】:
-
您的问题中似乎缺少代码示例,请您重新添加。
-
看起来您没有包含数据的数组,而是一个包含数据的 1 个元素的数组的数组,因此所有这些内部数组都具有包含信息的索引 0。必须分析代码以了解为什么会发生这种情况,这可能与使用一些抽象数据的类有关,例如
SimpleXMLElement()、DOMDocument()或等效的。 -
当我从
SimpleXMLElement()提取数据时,我强制进行类型转换来解决这个问题,例如$info = (double)$data->result,而不是简单的$info = $data->result。