在多维数组中分配值

迪米特里

我有以下功能:

public static function toArray($key, $value) {

    $e = explode('.', $key);

    $return = array();

    for($i = count($e) - 1; $i >=  0; $i--) {

        $return = array($e[$i] => $return);

    }

    return $return;

}

和输出:

Array
(
    [app] => Array
        (
            [shifts] => Array
                (
                    [total] => Array
                        (
                        )

                )

        )

)

和所需的输出:

Array
(
    [app] => Array
        (
            [shifts] => Array
                (
                    [total] => 3
                )

        )

)

这里发生的是给出一个字符串并使用点作为定界符创建一个多维数组。但是,我希望为最后一个数组分配该函数给定的值。本示例假定字符串输入为:“ apps.shifts.total”,值为3。我试图找到一种优雅的方法来实现此目的,而无需进入无用的循环。任何灵感将不胜感激!

威廉·范昂塞姆

您的初始化步骤是错误的。

尝试:

public static function toArray($key, $value) {
    $e = explode('.', $key);
    $return = $value; // MODIFIED HERE
    for($i = count($e) - 1; $i >=  0; $i--) {
        $return = array($e[$i] => $return);
    }
    return $return;
}

您基本上要做的是层叠到顶部。但是您从一个空数组开始。取而代之的是,您可以简单地从该值开始并围绕该值层叠数组。

示例(使用Interactive php -a):

$ php -a
Interactive mode enabled

php > function toArray($key, $value) {
php {     $e = explode('.', $key);
php {     $return = $value; // MODIFIED HERE
php {     for($i = count($e) - 1; $i >=  0; $i--) {
php {         $return = array($e[$i] => $return);
php {     }
php {     return $return;
php { }
php > var_dump(toArray('apps.shifts.total',3));
array(1) {
  ["apps"]=>
  array(1) {
    ["shifts"]=>
    array(1) {
      ["total"]=>
      int(3)
    }
  }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多维数组中分配值

来自分类Dev

在C中分配多维数组

来自分类Dev

在Julia中分配给多维数组

来自分类Dev

在C ++中分配部分长度可变的多维数组

来自分类Dev

在Cython中分配中间多维数组而无需获取GIL

来自分类Dev

在C ++中分配部分长度可变的多维数组

来自分类Dev

如何在C中分配多维数组所需的内存?

来自分类Dev

在循环中分配数组的值

来自分类Dev

在JSON数组中分配PHP值

来自分类Dev

如何在4个数组的多维数组中分配mysql结果集

来自分类Dev

使用索引功能在R中分配数组值

来自分类Dev

声明后在数组中分配多个值

来自分类Dev

在2d数组列表(Dict)中分配新值

来自分类Dev

如何在二维数组中分配值

来自分类Dev

相应地在php中分配数组值

来自分类Dev

在每个循环中分配数组值

来自分类Dev

在foreach循环错误中在数组中分配值

来自分类Dev

使用索引功能在R中分配数组值

来自分类Dev

在多个选择框中分配数组值

来自分类Dev

定义Numpy数组并在单行中分配值

来自分类Dev

临时变量没有从数组中分配正确的值

来自分类Dev

如何通过循环在多维数组中分离和分配数据-PHP

来自分类Dev

连续分配多维数组

来自分类Dev

多维数组对象分配

来自分类Dev

多维数组不让我通过循环分配值吗?

来自分类Dev

在Fortran中分配字符数组

来自分类Dev

在matlab中分配结构数组

来自分类Dev

在函数中分配结构数组

来自分类Dev

我如何在C#.net中分配值时分配数组的键