【问题标题】:PHP: Using a single value from one array as a key for another array?PHP:使用一个数组中的单个值作为另一个数组的键?
【发布时间】:2019-06-17 11:13:11
【问题描述】:

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

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

$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!**
            }
}

【问题讨论】:

  • 什么是$select?编辑您的问题以提供一段完整的代码(minimal reproducible example),任何人都可以将其复制并粘贴到 PHP 中并让它运行。 (请注意,这并不意味着将整个 1500 行的源文件复制并粘贴到问题中!)
  • 如果$select['names'] 有效而$select[$selector] 无效,那么$selector 的值可能不是您认为的$ar[$var] 应该有效的值。
  • miken32,谢谢你的链接!我以后会这样做的!和如月,这听起来和我的问题一模一样,但我不知道下一步该做什么。或者如何找出类型..我想我在这里去另一个谷歌搜索兔子洞
  • echo $selector;
  • 为什么要等待未来?您可以编辑您的问题。

标签: php html arrays string


【解决方案1】:

我把它弄乱了一点,这很有效:

$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]]

【讨论】:

  • 很好,虽然我没有复制粘贴,所以我没有错过代码中的第二个括号。我编辑了我的帖子以解决这个问题。但是我包括了 if 语句并且没有任何内容会回显,即使 $select[$field[6]] 不是空的..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
相关资源
最近更新 更多