如何用另一个变量对PHP中的数组求和
首先,我是一个初学者程序员,尝试一个关于顺序算法搜索的简单php代码。 我对输出有一个问题,其中所寻求的数据的位置是索引4,但输出是索引3如何用另一个变量对PHP中的数组求和,php,mysql,arrays,Php,Mysql,Arrays,首先,我是一个初学者程序员,尝试一个关于顺序算法搜索的简单php代码。 我对输出有一个问题,其中所寻求的数据的位置是索引4,但输出是索引3 <?php if(isset($_POST['Search'])) { $host = "localhost"; $username = "root"; $password = ""; $db = "db"; $db_link = mysqli_connect($host,$username,$password,$db); if (!$db_link)
<?php
if(isset($_POST['Search']))
{
$host = "localhost";
$username = "root";
$password = "";
$db = "db";
$db_link = mysqli_connect($host,$username,$password,$db);
if (!$db_link){
echo "koneksi gagal";
}
$a = 1;
$result = mysqli_query($db_link, "SELECT * FROM mahasiswa");
$array = array();
while ($row=mysqli_fetch_assoc($result))
{
$array[] = $row;
}
$xs = $_POST['namax'];
$data = explode(" ", $xs);
$jumlah_kata = (integer)count($data);
for ($j=0; $j <count($data); $j++) {
for ($i = 0; $i <count($array); $i++) {
if ($array[$i]['nama'] == $data[$j]) {
echo $h = $array[$i] + $a ['nama']."(Postion :".$i.") ";
}
}
}
}
?>
请提供帮助,谢谢检查了您的代码,其中包含一条if语句,如果为真,则返回您所需的输出。在你的例子中,它呼应出它在最后的位置 因此,如果名称匹配,则它将返回其位置,但请记住一件事,for循环以0开始,因此请注意如何计算索引,即:;在数据库中,索引将以1开始,而不是以0开始。因此,根据您的代码,它将通过迭代四次返回3,您可以将其计为4 还有一件事我想改进你的代码,即;您正在创建的额外循环,用于通过分解来检查名称。 您可以使用in_array function来解决此问题,并降低程序的时间复杂度。 让我给你们举个例子,说明我写的是什么
$xs = $_POST['namax'];
$data = explode(" ", $xs);
$jumlah_kata = (integer)count($data);
for ($i = 0; $i <count($array); $i++) {
if (in_array($array[$i]['nama'],$data)) {
echo $h = $array[$i] + $a ['nama']."(Postion :".$i.") ";
}
}
$xs=$\u POST['namax'];
$data=explode(“,$xs”);
$jumlah_kata=(整数)计数($data);
对于($i=0;$i)请不要使用大写字母,并请为代码添加标签,以便您和其他人可以轻松阅读。count()
始终返回整数,因此(整数)
不是必需的。我们希望看到一些示例输入和示例输入的预期输出。我真的不喜欢echo
的外观…赋值…非算术加法…非算术串联。为什么不应用分解的$\u POST['namax']
到您的查询?这是进行比较的最佳/最早点。看起来您只想显示匹配项——用sql执行。我无法想象位置
有任何值。您没有对查询的结果集进行排序,因此,$I
作为它来自哪一行的指示器是不可靠的。Yes、 这段代码按它应该的方式工作。我可以与您共享工作沙盒链接,以便您自己检查。[此处代码]()@mickmacuksa,请与我分享您对该代码不起作用的原因的评论,以便我也能理解问题,并尝试解决和学习。我已将循环指针更改为1,但输出结果仍然相同,证明您的答案不起作用:此过滤应使用sql和已准备好的语句完成,而不是在结果集中使用php。Thanks,下次我不会急于提供答案,会正确测试并显示工作代码链接,了解到这一点,谢谢@mickmackusa