gpt4 book ai didi

PHP foreach 成功循环在循环开始时重新分配一个变量

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

我有一个循环,它查询 mysql 进行搜索,但搜索将在查询结束时更改。我在编码中发现的是我现在没有发现的是我无法将变量重新分配给新的搜索查询,或者无论如何都不正确。

我添加了 echo 以查看它在做什么。

假设 John 被分配给 $preg_split

我想做的是将一个字符与数据库匹配,如果数据库中的第一个字符例如 J 匹配,然后从 $pre_split 分配第二个字符,即 o 所以 $char 将是 jo

所以开头的变量$char应该更新为jo

相反,出于某种原因,我确定我只是没有正确编写我的代码,因为它回显了 o 不是 jo..

所以我有点疑惑为什么它是第二个字符而不是第一个。

$NG_implode = implode("", $preg_split);

$NG_split = str_split($NG_implode, 1);
$i = '0';
$ia = '1';
$ib = '0';
$ic = '1';
$char = $NG_split[$ib];


foreach ($NG_split as $char)
{

$NG_select_like = "SELECT word FROM checklist_filter WHERE word LIKE '".$char."%'";
$NG_query = mysql_query($NG_select_like) or die(mysql_error());
$NG_row = mysql_fetch_row($NG_query);
$chars = str_split($char, 1);
$row = str_split($NG_row[0], 1);
if ($chars[$i] == $row[$i])
{

$char = $char.$NG_split[$ia];

$ia++;
$i++;
if ($char == $NG_row[0]){break;}
}else{$ib++; $char = $NG_split[$ib];}

}

最佳答案

$charforeach 循环的每次新迭代中被设置为 $NG_split 的下一个值,因此您的值在你的 foreach 循环中分配给 $char 下次将不再存在。你不能简单地这样做吗?

<?php
$str = "John";
$len = strlen($str);

$arr = array();
$i = 0;
while($i < $len) {
$arr[] = substr($str,0,$len-$i);
$i++;
}

var_dump($arr);
?>

现在,如果您遍历 $arr,您应该能够构建您感兴趣的查询。可能有一种更有效的方法来使用常规查询来获取您正在寻找的结果MySQL 中的表达式,但如果您可以分享更多有关您的用例的信息,这将有所帮助。

关于PHP foreach 成功循环在循环开始时重新分配一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405124/

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