繁体   English   中英

PHP:使用一个数组中的一个值作为另一个数组的键?

[英]PHP: Using a single value from one array as a key for another array?

如果需要,我很乐意提供更多信息。 这是精简版:

假设我有一个像这样的数组:

$field_data[0][0] = array("user_name", "table", "table[0][user_name]", "select", "200px", 0, "names");

并且此$ field_data会一直到$ field_data [3] [15]。 该结构的第一个元素到最后一个元素是:字段名称,表,表[索引] [字段名称],它们的输入类型(文本/日期/选择/ ..),字段大小,索引和数据库中要显示在选择器中的数据的名称(如果适用)。

然后,在php中:

$select['names'] = $db_lookup->getNamesSelect();

在前端,我试图像这样动态填充这些内容:

foreach ($field_data[$i] as &$field) {                  
            $field_name = $field[0];
            $table = $field[1];
            $table_field_name = $field[2];
            $field_type = $field[3];
            $field_size = $field[4];
            $iteration = $field[5];
            $selector = $field[6];
            $clean = ($iteration >= 0 ? $clean[$table][$iteration][$field_name] : $clean[$table][$field_name]);

            if ($field_type == 'text' || $field_type == 'date') { 
            ....
            } else if ($field_type == 'select') { 
                if($selector != null) {
                    **//This is where the problem is. This results in NULL:
                    // $select[$selector] (or $select[$field[6]])
                    // Meanwhile, $select['names'] works!**
            }
}

我把它弄乱了一点,这可行:

$field_data[0][1] = array("user_name", "table", "table[0][user_name]", "select", "200px", 0, "ages");
$field_data[0][0] = array("user_name", "table", "table[0][user_name]", "select", "200px", 0, "names");

$select['names'] = "Foo";

foreach ($field_data[0] as $field) {
    if (!empty($select[$field[6]])) {
        echo $select[$field[6]]."\n";
    }
}

我认为您只是缺少第二个结尾括号。 在$ select [$ field [6]] <-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM