gpt4 book ai didi

php - 从输入创建数组?

转载 作者:行者123 更新时间:2023-12-02 05:15:58 24 4
gpt4 key购买 nike

我希望在单个字段 (json) 中存储任意数量的问题答案。

所以输入可能是这样的:

您的工作:

  • 职位
  • 开始日期
  • 结束日期

我知道我可以调用输入 <input name="job_title[]">这些都将列为 job_title 下的数组.但是无论如何,仅通过以特定方式命名输入,就可以将所有三个输入列在键控数组下,例如:

[jobs => [['job_title' => 'xyz', 'start_date` => 'xyz', 'send_date` => 'xyz'], ....]

或者我需要用循环在 php 中手动构建它吗?

最佳答案

如果您只想要一个子集组,您可以指定要在输入列表中使用的键

<input name="name" value="John Doe">
<input name="jobs[job_title]" value="xyz">
<input name="jobs[start_date]" value="xyz">
<input name="jobs[send_date]" value="xyz">

结果:

$_POST => [
'name' => 'John Doe'
'jobs' ['job_title' => 'xyz', 'start_date' => 'xyz', 'send_date' => 'xyz'],
//...
];

如果您想接受多个工作,这取决于您希望如何关联您的数据,建议使用明确定义的分组索引。

要按顺序关联值,类似于您从数据库结果集中接收的方式,您可以为数据集组使用一个简单的增量变量。

<?php $i = 0; ?>
<input name="jobs[<?php echo $i; ?>][job_title]" value="xyz">
<input name="jobs[<?php echo $i; ?>][start_date]" value="xyz">
<input name="jobs[<?php echo $i; ?>][send_date]" value="xyz">
<?php $i++; ?>
<input name="jobs[<?php echo $i; ?>][job_title]" value="xyz">
<input name="jobs[<?php echo $i; ?>][start_date]" value="xyz">
<input name="jobs[<?php echo $i; ?>][send_date]" value="xyz">
<?php $i++; ?>

...

结果:$_POST['jobs'][$group][$field]

$_POST => [
'jobs' => [
0 => ['job_title' => 'xyz', 'start_date' => 'xyz', 'send_date' => 'xyz'],
1 => ['job_title' => 'xyz', 'start_date' => 'xyz', 'send_date' => 'xyz'],
//...
],
];

Excluding the input grouping value $i, like name="jobs[][field]" will result in PHP automatically incrementing the $_POST array index of the jobs.

It is the equivalent of using $jobs[] = ['field' => 'value']

$_POST => [
'jobs' => [
0 => ['job_title' => 'xyz', ],
1 => ['start_date' => 'xyz'],
2 => ['send_date' => 'xyz']
]
];

或者,您可以在迭代结果时使用数据库标识符列值,这在对现有记录执行更新时很有用。

<?php 

$results = [
['id' => 1, 'job_title' => 'abc', 'start_date' => 'abc', 'send_date' => 'abc'],
['id' => 2, 'job_title' => 'xyz', 'start_date' => 'xyz', 'send_date' => 'xyz'],
];

foreach ($results as $row) { ?>
<input name="jobs[<?php echo $row['id']; ?>][job_title]" value="<?php echo $row['job_title']; ?>">
<input name="jobs[<?php echo $row['id']; ?>][start_date]" value="<?php echo $row['start_date']; ?>">
<input name="jobs[<?php echo $row['id']; ?>][send_date]" value="<?php echo $row['send_date']; ?>">
<?php } ?>

关于php - 从输入创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56294675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com