如何使用PHP回送多维数组变量?
这个问题可能很简单,但不幸的是我不能正确回答 我有一个从数据库获得的数据集,然后根据一个条件创建一个新的“数据集”或多维数组,最后我准备显示最终数组中的内容。我之所以使用第二个数组if,是因为我需要将其用于其他目的 这是我当前的代码如何使用PHP回送多维数组变量?,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,这个问题可能很简单,但不幸的是我不能正确回答 我有一个从数据库获得的数据集,然后根据一个条件创建一个新的“数据集”或多维数组,最后我准备显示最终数组中的内容。我之所以使用第二个数组if,是因为我需要将其用于其他目的 这是我当前的代码 //$controllers is a data set returned from a mysql query $set_controllers = array(); foreach($controllers AS $input){
//$controllers is a data set returned from a mysql query
$set_controllers = array();
foreach($controllers AS $input){
$input_value = '';
if(isset($_POST[$input['name']]) ){
$input_value = trim($_POST[$input['name']]);
}
$set_controllers[]['name'] = $input['name']; //name
$set_controllers[]['answer'] = $input_value; //answer
$set_controllers[]['required'] = $input['required']; //is required field or not
}
foreach($set_controllers AS $field){
echo $field['name'] . '<br />';
echo $field['required'] . '<br />';
echo $field['answer'] . '<br /><br />';
}
/$controllers是从mysql查询返回的数据集
$set_controllers=array();
foreach($控制器作为$输入){
$input_值=“”;
如果(isset($_POST[$input['name']])){
$input_value=trim($_POST[$input['name']]);
}
$set_controllers[]['name']=$input['name'];//name
$set\u controllers[]['answer']=$input\u value;//answer
$set_controllers[]['required']=$input['required'];//是否为必填字段
}
foreach($set_控制器为$field){
echo$field['name'].
;
echo$field['required'].
;
echo$field['answer']。
;
}
我遇到的问题是:
注意:未定义索引:必需
未定义索引:名称
未定义索引:答案
为什么会出现这个错误?我如何解决它?请尝试以下方法:
$tmp = array();
$tmp['name'] = $input['name']; //name
$tmp['answer'] = $input_value; //answer
$tmp['required'] = $input['required']; //is required field or not
$set_controllers[] = $tmp;
使用[]可以创建一个新的索引,我想您不希望每行都有这个索引。
E\u NOTICE
是一种错误报告。您可以使用`error\u reporting(E\u ALL ^E\u NOTICE)将其关闭代码>@JaredEitnier当它们揭示逻辑问题时,它们很有用,就像在本例中一样。如果禁用它们,OP将不知道他的代码没有按预期工作。要清楚地了解正在发生的事情,您可以使用var\u dump($set\u controllers)
打印$set\u controllers($set\u controllers)
$arr[]=$val
相当于数组推送($arr,$val)
。在三个单独的推送操作中推送三个单独的值,创建三个新的数组项。这些条目中的每一个都只有您试图保存的三个键/值对中的一个,因此您会出现错误。完美。是的,这解决了问题。因此,更改此项将为每个索引创建一个数组。非常感谢你的快速回答。我会在10分钟内把这个答案标对。