首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印出数组的索引,以及每个索引的值

打印出数组的索引,以及每个索引的值
EN

Stack Overflow用户
提问于 2010-11-09 02:58:49
回答 2查看 1.5K关注 0票数 0

我有数组$student[]

代码语言:javascript
复制
<?php
$student['id'] = "10402";
$student['hnumber'] = "H030502";
$student['name'] = "Larry Wayne";

print_r($student);
?>

它会打印出来:

代码语言:javascript
复制
Array ( [id] => 10402 [hnumber] => H030502 [name] => Larry Wayne )

我想要完成的是将值存储到数组中,然后将其插入到数据库表中。

所以insert语句应该是:

代码语言:javascript
复制
$q = "insert into table (id, hnumber, name) VALUES ('10401', 'H030502', 'Larry Wayne')";

我想使用一个数组来存储其中的所有值,用表字段名标记每个值,因为我将向其中插入大约25个字段。

如果有更好的方法实现这一点,我会洗耳恭听。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-09 03:08:04

假设您正在从另一个来源构建一个学生数组,那么下面这样的内容如何?

代码语言:javascript
复制
// data from an external source
$students = array(
    // student 1
    array(
        123,
        'h123',
        'John Smith',
    ),
    // student 2
    array(
        456,
        'h456',
        'Jane Smith',
    ),
    // ... and so on        
);

$values = array();
foreach ( $students as $student )
{
    // @todo, make sure to sanitize values!!!
    $values[] = sprintf('(%s)', implode(', ', $student));
}
// build query
$query = 'INSERT INTO `table` (`id`, `hnumber`, `name`) VALUES '.implode(', ', $values);

请注意,上面的代码是“伪”或一个想法,如果你想。确保净化值:)

编辑:还有一件事。如果您想要一个简单的修复,最好是用于某种简单的数据导入,那么上面的代码是很好的。更好的方法是创建一个类Student来处理所有这些逻辑。

票数 0
EN

Stack Overflow用户

发布于 2010-11-09 04:43:30

我想简单地评论一下David的例子,因为它和我要建议的差不多,但不幸的是,我不能在评论中添加代码。David在最初的问题中忘记了一件事,那就是您希望使用表字段作为数组的一部分-在本例中,表字段作为键字段。在foreach中,您可以将数组拆分为键/值对,然后在以后的代码中使用它们。

代码语言:javascript
复制
<?php
    $student['id'] = "10402";
    $student['hnumber'] = "H030502";
    $student['name'] = "Larry Wayne";
    $queryFields = array();
    $queryValues = array();
    $queryString = '';

    foreach($student as $key => $value){
        $queryFields[] = '`'.$key.'`';
        $queryValues[] = $value;
    }

    $queryString = 'INSERT INTO `table` ('.implode(',', $queryFields).') VALUES ('.implode(',', $queryValues).')';
    //run_query($queryString)
?>

由于我不是100%熟悉CodeIgniter,所以很可能有一种方法可以将数组和/或对象映射到某种ActiveRecord实现。但是,由于您只是在寻找一种生成查询字符串本身的方法,因此这样做可以做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4127014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档