我有一段代码,它将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'];
}