【发布时间】:2014-08-30 15:58:31
【问题描述】:
我对编码比较陌生,需要一点帮助。我基本上是在尝试遍历 mySQL 数据库中的一个条目并将任何新条目推送到一个数组中,这样它只会在我的数组中出现一次。
// SQL query
$response = $bdd->query('SELECT serie_bd FROM inventaire_bd');
//creating array to group all elements from the db so that they do not repeat
$serie_bd_groupe=array();
while($data_collected = $response->fetch())
{
if(array_key_exists($data_collected,$serie_bd_groupe)==false)
{
array_push($data_collected,$serie_bd_groupe);
}
}
这行得通吗? - 似乎循环在第二次遇到条目后会一直卡住,因为 if 语句不会自行执行。
而且在未来,他们的任何 php 是否等同于 jsfiddle.net,以便我可以在语法上测试代码?
感谢您的宝贵时间
【问题讨论】:
-
$data_collected是获取数组还是收集器数组? -
旁白:
array_push是一个不好的习惯。在极少数情况下您想使用它,但这不是其中之一。只需使用[]运算符。 -
@Jon 出于好奇,为什么使用
array_push是个坏习惯?那是因为我们可以简单地使用[]运算符吗?我看不出比调用文档所说的函数的开销有多大区别。 -
@code-jaff:它更慢,而且(更重要的是)它不是惯用的。每个人都会立即理解
[]的作用,而array_push则需要人类读者“解析”它。 -
在手册中它说“注意:如果你使用 array_push() 向数组添加一个元素,最好使用 $array[]”php.net/manual/en/function.array-push.php