我有一段代码将csv文件读入多维数组,但在某些时候我想向数组中添加信息。
人物阵列看起来像这样:
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来自数据库,我构建了下面的代码来修改人员数组:
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中的非法偏移类型 注意:未定义的索引:第X行的script.php中的personid
我做错了什么?
我也试过array_push($persons[$row]['personid'], $cell['personid']);
,但这也不起作用。
请帮忙!
答案 0 :(得分:0)
试试这个:
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'];
}
答案 1 :(得分:0)
您是否阅读过文档? http://php.net/manual/en/function.mysql-fetch-row.php
mysql_fetch_row返回一个枚举数组(就像在文档的第一行中所说的那样)。 您可能希望使用键0($ cell [0])或mysql_fetch_assoc()代替使用$ cell ['personid']。
BTW:你想要转义你在查询中输入的数据(名称)。请参阅http://php.net/manual/en/function.mysql-real-escape-string.php。