【发布时间】:2015-02-06 06:27:32
【问题描述】:
我有一个如下所示的数组。当我使用 for 循环回显这些值时,一切看起来都很好,但我不能使用它来将数据添加到我的数据库中。
$title[2][$i];
虽然我可以使用 for 循环来回显它,但我不能将它用作变量。我想我需要把它转换成一个变量。我使用 implode 尝试了一些东西,但后来我发现它不适用于多维数组。
for ($i = 0; $i < 5; $i++) {
$site = file_get_contents("URL");
preg_match_all('@REGEXP@ $site, $title);
$title[2][$i] = strip_tags($title[2][$i]);
echo $title[2][$i]; // echoes perfectly fine for x times
}
但是下面的查询失败了。
$sql = $sqli->prepare("INSERT INTO thing(title) VALUES(?)");
$sql->bind_param("s", $title[2][$i]);
$sql->execute();
我认为在执行下面的查询之前我需要使用 foreach 循环,但我卡住了。
foreach ($title[2][$i] as $key => $value) {
$sql4 = "SELECT person_id FROM person where person_name = '$title[2][$i][$key]'";
$result = $sqli->query($sql4);
$rowget = $result->fetch_assoc();
$final = $rowget['person_id'];
}
【问题讨论】:
-
你能把
$title的值放在这里吗? -
array(4) { [0]=> array(49) { [0]=> string(93) "标题" [1]=> string(93) "标题" [2] => string(100) " Title2" [3]=> string(100) " Title2" [4]=> string(92) " Title3 " [5]=> string(92) " Title3 " 然后继续那个。
-
不要使用正则表达式处理HTML;使用 DOM 解析器。
-
@Ja͢ck,谢谢。我会调查的。
-
你好。您正在使用
$sql->bind_param("s", $title[2][$i]);。您是否在那个地方初始化了$i变量?还有一件事:$sql4 = "SELECT person_id FROM person where person_name = '$title[2][$i][$key]'";你应该在那里使用花括号,例如:'{$title[2][$i][$key]}'
标签: php arrays multidimensional-array