gpt4 book ai didi

PHP 对 MySQL 中的数组计数不正确

转载 作者:行者123 更新时间:2023-11-29 20:23:13 26 4
gpt4 key购买 nike

我无法正确计算从数据库中提取的数组中的元素。请参阅下面我的代码:

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully!";

//NEW QUERY TO OUR DATABASE
$query = $conn -> query("Select distinct Race from Races");
while($race[] = $query->fetch_object());

//Check how many elements are within our query
$racecount = count($race);
echo "<br>" . $racecount . "<br><br>";
$racecount = count($race,COUNT_RECURSIVE);
echo "<br>" . $racecount . "<br><br>";

var_dump($race);

echo "<br><br><br>";

以两种方式使用两种类型 count() 都会产生相同的结果“4”。不过,请查看我的 var_dump 的结果。

array(4) { [0]=> object(stdClass)#3 (1) { ["Race"]=> string(5) "Human" } [1]=> object(stdClass)#4 (1) { ["Race"]=> string(7) "Vampire" } [2]=> object(stdClass)#5 (1) { ["Race"]=> string(5) "Demon" } [3]=> NULL } 

Var_dump 显示它是一个包含 4 个元素的数组。所以计数是正确的,它只是没有给我我正在寻找的数字。

因此,我有三个问题。

1) 如何正确计算我的元素?

2) 有人可以向我解释一下为什么它读作 4 个元素吗?

3) 我的数组不是多维的吗? (因为两个计数产生相同的结果 4)

预先致以最诚挚的问候和感谢,

乔什

最佳答案

`while($race[] = $query->fetch_object());`

$query->fetch_object() 返回 null 表示数据集中不再有条目,但您仍分配该 null 值作为最后一个条目添加到您的 $race 数组中,然后才允许 while 终止其循环....这就是为什么您有 4 个条目数组而不是 3。

您的数组不是多维的,因为存储在$races数组中的实体是对象,而不是数组;如果它是数组的数组,它只会是多维的

关于PHP 对 MySQL 中的数组计数不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39424824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com