【发布时间】:2019-09-09 11:17:14
【问题描述】:
我在同时使用 2 个数组推送时遇到问题。当我将 10 个元素推入第一个数组,将 20 个元素推入第二个数组时,它运行良好。但是当我在第一个数组上推送 1000 个元素时,第二个数组不会推送..
这是我的代码:
public function save() {
extract($_POST);
$first_array = array();
$second_array = array();
// This array contains 1000 elements to push
foreach($data as $key) {
$data3 = array(
'LOCATION_ID' => $key,
'TRX_ID' => $id,
);
array_push($first_array,$data3);
}
// This array contains 20 data
for($i = 0; $i < $total ; $i++) {
$data4 = array(
'CONDITION' => $CONDITION[$i],
'TRX_ID' => $id
);
array_push($second_array,$data4);
}
$insert_first = $this->db->insert_batch('LOCATION',$first_array);
$insert_second = $this->db->insert_batch('CONDITION',$second_array);
if($insert_first) {
if($insert_second) {
$message = array(true,'success');
} else {
$message = array(false,'failed');
}
} else {
$message = array(false,'failed');
}
echo json_encode($message);
}
<form method="POST" action="<?php echo base_url()?>admin/transaction/save">
<div class="form-group">
<label>Location</label>
<select name="LOCATION[]" multiple class="form-control">
<?php foreach($LOC as $key) : ?>
<option value="<?php echo $key['id_location'] ?>"><?php echo $key['location_name'] ?></option>
<?php endforeach; ?>
</select>
</div>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<input type="hidden" name="total" value="<?php echo count($CON); ?>">
<div>
<table>
<thead>
<tr>
<th>#</th>
<th>NAME</th>
<th>VALUE</th>
</tr>
<thead>
<tbody>
<?php $no = 1; foreach($CON as $value) : ?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $value['condition_name'] ?></td>
<td><input type="number" name="CONDITION<?php echo $no; ?>"></td>
</tr>
<?php $no++ ;endforeach; ?>
</tbody>
</table>
</div>
</form>
有没有办法让两个数组都排队?我已经尝试移动数组推送的位置。所以第二个数组首先推送,然后是第二个推送的第一个数组。任何形式的帮助都非常感谢,谢谢..
【问题讨论】:
-
控制您的第二个循环组的
$total在哪里? -
$total 来自 view ,提取自 extract($_POST); , 还有 $id...@NigelRen
-
会不会是内存问题?有时 PHP 会默默地失败。
-
这是另一个我不会想到的问题...@JohannesSchidlowski
-
@BaktiWijaya
$id、$total和$CONDITION在哪里?
标签: php arrays codeigniter