多维数组中的新元素



我有一段代码,它将csv文件读取到多维数组中,但是在某些时候我想向数组中添加信息。

persons数组如下所示:

array(4) {
  [0]=> array(2) {
    ["personnumber"]=> string(5) "test1"
    ["personname"]=> string(14) "Test person 1"
  }
  [1]=> array(2) {
    ["personnumber"]=> string(5) "test2"
    ["personname"]=> string(14) "Test person 2"
  }
  [2]=> array(2) {
    ["personnumber"]=> string(5) "test3"
    ["personname"]=> string(14) "Test person 3"
  }
  [3]=> array(2) {
    ["personnumber"]=> string(5) "test4"
    ["personname"]=> string(14) "Test person 4"
  }
}

我想添加一个personid,使数组看起来像这样:

array(4) {
  [0]=> array(2) {
    ["personnumber"]=> string(5) "test1"
    ["personname"]=> string(14) "Test person 1"
    ["personid"]=> string(3) "453"
  }
  [1]=> array(2) {
    ["personnumber"]=> string(5) "test2"
    ["personname"]=> string(14) "Test person 2"
    ["personid"]=> string(3) "454"
  }
  [2]=> array(2) {
    ["personnumber"]=> string(5) "test3"
    ["personname"]=> string(14) "Test person 3"
    ["personid"]=> string(3) "455"
  }
  [3]=> array(2) {
    ["personnumber"]=> string(5) "test4"
    ["personname"]=> string(14) "Test person 4"
    ["personid"]=> string(3) "456"
  }
}

personid来自数据库,我构造了下面的代码来修改persons数组:

foreach ($persons as $row)
{
    $sql = "SELECT personid FROM persons WHERE person = '". $row['personname'] ."'";
    $result = mysqli_query($link, $sql);
    $cell = mysqli_fetch_row($result);
    $persons[$row]['personid'] = $cell['personid'];
}

当执行时,我得到这些错误:警告:X行script.php中的非法偏移类型注意:script.php X行未定义索引:personid

我做错了什么?

我也试过array_push($persons[$row]['personid'], $cell['personid']);,但那也不起作用。

请帮忙!

你看过文档了吗?http://php.net/manual/en/function.mysql-fetch-row.php

mysql_fetch_row返回一个枚举数组(就像它在文档的第一行所说的那样)。您可能希望使用键0 ($cell[0])或mysql_fetch_assoc()而不是使用$cell['personid']。

顺便说一句:您可能希望转义您在查询中输入的数据(名称)。

试试这个:

foreach ($persons as $key => $row)
{
    $sql = "SELECT personid FROM persons WHERE person = '". $row['personname'] ."'";
    $result = mysqli_query($link, $sql);
    $cell = mysqli_fetch_row($result);
    $persons[$key]['personid'] = $cell['personid'];
}

相关内容

  • 没有找到相关文章

最新更新