Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php对重力表单中的选择框列表进行排序?_Php_Wordpress_Sorting_Gravity Forms Plugin_Array Multisort - Fatal编程技术网

如何使用php对重力表单中的选择框列表进行排序?

如何使用php对重力表单中的选择框列表进行排序?,php,wordpress,sorting,gravity-forms-plugin,array-multisort,Php,Wordpress,Sorting,Gravity Forms Plugin,Array Multisort,我已经完成了WordPress网站上的大部分翻译设置,但一个突出的问题是,当用户切换到西班牙语时,我注册页面上下拉框中的国家列表仍然是英语 我有一个数组,$countries,它将英语映射为西班牙语国家名称,并使用以下表单字段循环的一部分成功地将英语替换为西班牙语名称: $options = $field["choices"]; foreach ( $options as $cy_key => $option ) { $country_en = $option[text];

我已经完成了WordPress网站上的大部分翻译设置,但一个突出的问题是,当用户切换到西班牙语时,我注册页面上下拉框中的国家列表仍然是英语

我有一个数组,$countries,它将英语映射为西班牙语国家名称,并使用以下表单字段循环的一部分成功地将英语替换为西班牙语名称:

$options = $field["choices"];
foreach ( $options as $cy_key => $option ) {
    $country_en = $option[text];
    $country_es = $countries[$country_en];
    $form["fields"][$key]["choices"][$cy_key][text] = $country_es;
}
如果您不熟悉重力表单,但了解PHP,我现在有一个嵌套数组,如下所示:

$form["fields"][$key]["choices"] = array (
    array (
        text=>"Belgica",
        value=>"Belgium",
        isSelected=>'',
        price=>''),
    array (
        text=>"Francia",
        value=>"France",
        isSelected=>'',
        price=>''),
    array (
        text=>"España",
        value=>"Spain",
        isSelected=>'',
        price=>'')
    );
我想根据嵌套的数组文本值(即“Belgica”、“Francia”、“España”)对该数组进行排序


我已经阅读了php.net文档,我怀疑解决方案可能需要array_multisort,但我找不到类似的示例,也无法理解它们是否需要。

为什么不使用内置的get_文本翻译功能??像
(“法国”,“我的文本”\u域”)
…它们不可用。Gravity Forms为下拉框生成选择列表,并从db表中检索这些值。您可以截取国家名称,并在它们显示在管理页面上之前通过get_text更改它们,但一旦将它们添加到表单中并存储在db中,就不容易更改它们。我知道的唯一解决方案是在表单呈现之前使用一个可用的钩子来交换值。我用重力表单的例子来阐述我的问题,但这实际上只是一个PHP排序问题。但是你知道你也可以翻译变量(“my_文本_域”),对吗?至少我以前有过。。这意味着您还可以翻译从DB中提取的内容(或任何字符串)。我熟悉使用变量处理您不想翻译的内容,例如“您正在查看注释%x,共%y”。我已经阅读了很多关于get_text的内容,没有遇到过使用变量的人,所以我很想知道更多,但是,选择列表是由GF插件生成的,并且没有包含在get_text调用中……在这里很难在评论中演示这一切(更不用说完全脱离主题)你可能想为它打开一个新的问题,或者自己尝试一下。至于插件生成的列表,这是不相关的,因为在生成列表之前,需要对传递给插件的变量使用translation函数。我在过去使用过同样的技术来生成下拉列表(在不同的上下文中)