【问题标题】:Array to string conversion in PHP : Multidimensional arraysPHP中的数组到字符串转换:多维数组
【发布时间】: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-&gt;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


【解决方案1】:

试试这个:

    $sql = $sqli->prepare("INSERT INTO thing(title) VALUES(?)");
    $sql->bind_param("s", (int)$title[2][$i]);
    $sql->execute();

【讨论】:

  • (int) 将在此处提供0
猜你喜欢
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 2014-07-16
  • 2015-03-22
相关资源
最近更新 更多