创建和存储数组/动态数组


Creating and Storing an array / Dynamic array

我有创建数组和存储信息的问题,我有一个数据表,它的数量可能是无限的,然后用户将选择一些选项,这将决定他们可以选择哪些值(这又是一个无限的数字),然后这些选择被呈现到一个复选框中,我使用这个代码

<?php foreach ( $results['detailsline'] as $detailsline )
 {
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details" value="'.$invoice_details.'"/>';  
  }             
 ?> 

所以这应该搜索他们之前选择的选项,并将它们排序到一个数组中,然后进入复选框,但是当我存储信息只是保存最后一个复选框时,我不能改变每个输入EG

的值
echo '<input type="checkbox" name="invoice_details[value1]" 
echo '<input type="checkbox" name="invoice_details[value2]" 

因为我不知道会有多少值/复选框。我也试过这个

    <?php foreach ( $results['detailsline'] as $detailsline )
 {
$invoice_details[] = $detailsline->details_line;
echo $invoice_details[];
echo '<input type="checkbox" name="invoice_details[]" value="'.$invoice_details.'"/>';  
  }             
 ?> 

修改

    $invoice_details

$invoice_details[]

,但这将只是存储一个值"数组"在我的数据库,而不是实际的值。

有谁能帮帮我吗?伊恩

好的,我认为你应该试试这个:

<?php 
$i=0;
foreach ( $results['detailsline'] as $detailsline )
{
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details[$i]" value="'.$invoice_details.'"/>';  
$i++;
}             
?>

试试这个

<?php foreach ( $results['detailsline'] as $detailsline )
 {
$invoice_details = $detailsline->details_line;
echo $invoice_details;
echo '<input type="checkbox" name="invoice_details[]" value="'.$invoice_details.'"/>';  
  }             
 ?> 

使用<input type="checkbox" name="invoice_details[]">

在你的代码中,你可以使用serialize($invoice_details)保存到DB,当使用- unserialize($field_from_db)

第一个函数返回字符串,因此您可以将其保存为字符串字段,第二个函数获取字符串并返回整个数组,因此您可以使用它。

,但这将只是存储一个值"数组"在我的数据库,而不是实际的值。

认为您尝试将Array存储为字符串,因此获得了该值所以可能需要使用内爆/序列化/json_encode(数组)来存储数据?

字面意思是代码$invoice_details[] = $detailsline->details_line;意味着获取对象$detailsline的属性details_line并将其值作为新元素插入数组$invoice_details。你确定这是你想要的吗?另外,我认为$detailsline是一个数组,但不是对象(您试图将其作为对象操作)