为foreach提供的参数无效()
如何修复以下错误Message: Invalid argument supplied for foreach() - Line Number: 28
foreach
?为foreach提供的参数无效()
<?php
$mileage = array();
$mileage_input = $this->input->post('mileage');
foreach ($mileage_input as $idx => $name) { //Line 28
$mileage[] = array(
'mileage' => $mileage_input[$idx]
);
}
$data = array(
'mileage' => json_encode($mileage),
'customer_number' => $customer_number,
'name' => $this->input->post('name')
);
$this->db->insert('customer', $data);
?>
$mileage_input
可能不是一个数组,这就是为什么它不工作。
最有可能的$ mileage_input不是数组。 也许你必须错误检查$ this-> input-> post。
如果你不真的关心错误,但只是不想得到错误,你可以在循环之前将值转换为数组。
foreach((array)$mileage_input as $idx => $name {
把灰尘藏在地毯下不会让你的房子更清洁。 –
很多时候你可以从例如NULL传递给你的函数,在这种情况下,你不想做循环通常做的事情。将NULL转换为数组会给出一个空数组,因此foreach中将不会运行循环。我发现它不时很有用。 –
在这种情况下,只需对所定义的变量进行显式检查,而不是null。或者,更好的是,如果函数需要一个数组,则向它传递一个数组(即使它是空的)。 –
尝试'var_dump($ mileage_input)'看看你会得到什么。如果你没有得到一个数组,那么它将无法工作。 –
“里程”字段必须在html表单中命名为“mileage []”,例如''input type =“text”name =“mileage []”...>',否则PHP将不会自动将其转换为_POST/_GET数组中的数组。 –
[为foreach()提供的无效参数的可能的重复)(http://*.com/questions/2630013/invalid-argument-supplied-for-foreach) –