如何返回PHP $ _POST数组作为可用作名称属性的字符串?

恐惧症

问题:

我有一系列的帖子值,看起来像:

$_POST['children'] = array(
[0]=>array(
'fname' => 'name',
'mname' => 'mname',
'lname' => 'lname,
'dob' => '10/17/1992
),
[1]=>array(
'fname' => 'name',
'mname' => 'mname',
'lname' => 'lname,
'dob' => '10/17/1992
),
[2]=>array(
'fname' => 'name',
'mname' => 'mname',
'lname' => 'lname,
'dob' => '10/17/1992
)
);
// and so on

我的视图函数中设置了一个脚本,该脚本检查旧输入,并在表单不通过验证的情况下重新填充值。我需要找到一种方法以一系列键/值对的形式返回上述数组,即

'children[0][fname]' = 'name'
'children[0][mname]' = 'mname'
'children[0][lname]' = 'lname'
// ... and so on for all fields

理想情况下,我希望它可以与任何深度的数组一起使用,这使我认为我需要某种递归函数来格式化键。我的时间很糟糕,无法解决该问题。

我尝试过的

我一直在使用以下功能:

function flatten($post_data, $prefix = '') {
    $result = array();
    foreach($post_data as $key => $value) {
        if(is_array($value)) {
            if($prefix == ''){
                $result = $result + flatten($value, $prefix. $key );    
            }else{
                $result = $result + flatten($value, $prefix. '[' . $key . ']'); 
            }

        }
        else {
            $result[$prefix . $key .''] = $value;
        }

    }
    return $result;
}

这使我有点接近,但不太正确。当我将其提供给$ _POST数组时,它将返回以下内容

[children[1]fname] => test
[children[1]mname] => test
[children[1]lname] => test
[children[1]dob] => 
// Expecting: children[1][fname] => test
// ...

还是有可能更简单的方法来做到这一点?

恐惧症

最终为我工作的是:

function flatten($post_data, $prefix = '') {
    $result = array();
    foreach($post_data as $key => $value) {
        if(is_array($value)) {
            if($prefix == ''){
                $result = $result + flatten($value, $prefix. $key );    
            }else{
                $result = $result + flatten($value, $prefix. '[' . $key . ']'); 
            }

        }
        else {
            if( $prefix == ''){
                $result[$prefix . $key.''] = $value;
            }else{
                $result[$prefix . '['.$key.']'.''] = $value;
            } 

        }

    }
    return $result;
}

它没有考虑到递归函数最后一次调用的返回值是标量值。这些if / else语句的添加似乎已经解决了它。

if( $prefix == ''){
    $result[$prefix . $key.''] = $value;
}else{
    $result[$prefix . '['.$key.']'.''] = $value;
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将整数转换为可用作Postgresql中列名称的字符串?

来自分类Dev

如何使用作为字典名称的输入字符串引用字典

来自分类Dev

如何使用属性名称作为字符串获取属性值,例如 object["foo"]

来自分类Dev

字符数组应如何用作字符串?

来自分类Dev

ReactJS:如何传递字符串用作函数名称?

来自分类Dev

如何将早期绑定属性名称作为字符串常量?

来自分类Dev

如何过滤 php 二维数组以返回名称属性包含搜索查询作为通配符的元素?

来自分类Dev

PHP的fsockopen如何返回数组

来自分类Dev

将字符串数组作为POST传递给PHP脚本

来自分类Dev

如何返回PHP字符串的文字值,使其作为代码运行?

来自分类Dev

Func <DomainObject,object>如何将对象名称作为字符串返回

来自分类Dev

Java:当我将其名称作为字符串时如何返回对象?

来自分类Dev

如何格式化PHP函数返回的字符串

来自分类Dev

获取对象名称作为字符串在PHP?

来自分类Dev

如何将JSON字符串转换为PHP数组,然后再次返回?

来自分类Dev

将整个数组作为字符串返回

来自分类Dev

返回整个数组作为字符串

来自分类Dev

搜索日期字符串并作为数组返回 NodeJS

来自分类Dev

如何从参数作为数组创建“公共字符串数组”?

来自分类Dev

如何让JAX-RS返回Java 8 LocalDateTime属性作为JavaScript样式的日期字符串?

来自分类Dev

如何将字符串作为PictureBox名称?

来自分类Dev

如何使用字符串的值作为对象的名称?

来自分类Dev

如何获取变量名称作为字符串?

来自分类Dev

如何使用字符串作为 SKScene 的名称

来自分类Dev

如何用逗号将数组中的对象作为字符串返回?

来自分类Dev

如何用逗号将数组中的对象作为字符串返回?

来自分类Dev

如何在不将属性名称作为字符串传递的情况下引发PropertyChanged事件?

来自分类Dev

如何返回字符串的地址(作为字符指针)

来自分类Dev

如何在python中使用字符串作为数组的名称,以便可以在for循环中使用

Related 相关文章

  1. 1

    如何将整数转换为可用作Postgresql中列名称的字符串?

  2. 2

    如何使用作为字典名称的输入字符串引用字典

  3. 3

    如何使用属性名称作为字符串获取属性值,例如 object["foo"]

  4. 4

    字符数组应如何用作字符串?

  5. 5

    ReactJS:如何传递字符串用作函数名称?

  6. 6

    如何将早期绑定属性名称作为字符串常量?

  7. 7

    如何过滤 php 二维数组以返回名称属性包含搜索查询作为通配符的元素?

  8. 8

    PHP的fsockopen如何返回数组

  9. 9

    将字符串数组作为POST传递给PHP脚本

  10. 10

    如何返回PHP字符串的文字值,使其作为代码运行?

  11. 11

    Func <DomainObject,object>如何将对象名称作为字符串返回

  12. 12

    Java:当我将其名称作为字符串时如何返回对象?

  13. 13

    如何格式化PHP函数返回的字符串

  14. 14

    获取对象名称作为字符串在PHP?

  15. 15

    如何将JSON字符串转换为PHP数组,然后再次返回?

  16. 16

    将整个数组作为字符串返回

  17. 17

    返回整个数组作为字符串

  18. 18

    搜索日期字符串并作为数组返回 NodeJS

  19. 19

    如何从参数作为数组创建“公共字符串数组”?

  20. 20

    如何让JAX-RS返回Java 8 LocalDateTime属性作为JavaScript样式的日期字符串?

  21. 21

    如何将字符串作为PictureBox名称?

  22. 22

    如何使用字符串的值作为对象的名称?

  23. 23

    如何获取变量名称作为字符串?

  24. 24

    如何使用字符串作为 SKScene 的名称

  25. 25

    如何用逗号将数组中的对象作为字符串返回?

  26. 26

    如何用逗号将数组中的对象作为字符串返回?

  27. 27

    如何在不将属性名称作为字符串传递的情况下引发PropertyChanged事件?

  28. 28

    如何返回字符串的地址(作为字符指针)

  29. 29

    如何在python中使用字符串作为数组的名称,以便可以在for循环中使用

热门标签

归档