当前位置: 首页 > 知识库问答 >
问题:

将php数组更改为单个变量的简单方法

王鹏飞
2023-03-14

以下数组是名为$result的数组的打印。我想知道将数组更改为一组变量的最佳方法,我可以将这些项中的任何一项作为变量访问。例如,如果我想查看[queued_at]值,我可以使用名为$queued_at的变量

数组([响应]=

以下是阵列的格式化版本:

Array
(
    [response] => Array
        (
            [success] => 1
            [result] => Array
                (
                    [success] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 16627521
                                    [device_id] => 22269
                                    [message] => test 10:37
                                    [status] => pending
                                    [send_at] => 1463700123
                                    [queued_at] => 0
                                    [sent_at] => 0
                                    [delivered_at] => 0
                                    [expires_at] => 1463703723
                                    [canceled_at] => 0
                                    [failed_at] => 0
                                    [received_at] => 0
                                    [error] => 
                                    [created_at] => 1463700123
                                    [contact] => Array
                                        (
                                            [id] => 3801855
                                            [name] => +64212465478
                                            [number] => +64212465478
                                        )

                                )

                        )

                    [fails] => Array
                        (
                        )

                )

        )

    [status] => 200
)

共有3个答案

彭华皓
2023-03-14

我认为,通过在普通的foreach循环中使用variable变量,您将得到想要的。

例子:

$array = $result['response']['result']['success'][0];

foreach($array as $varname => $value)
{
  if(is_string($value)) $$varname = $value;
}
仉峻
2023-03-14

您可以使用提取功能。这将把所有数组键转储到当前变量池中。有几个标志可用于确定在发生碰撞时要执行的操作。例如:

extract($result, EXTR_PREFIX_ALL, "r_");

将允许您访问所有的数组键作为前缀为"r_"的变量。

邵鸿福
2023-03-14

您可以使用extract()来执行此操作,例如extract($array,EXTR_OVERWRITE),但需要注意以下几点:

>

我发现您有嵌套数组,extract()可能不够聪明,无法处理这些数组,但您可以尝试这里提出的嵌套的\u extract()方法:http://php.net/manual/en/function.extract.php(见评论部分)

反正我也不建议这么做。如果您只需要一种简单的方法来访问数组内部的数据——只需编写一个智能查找器函数,在嵌套数组中查找特定的键。

您的替代解决方案-而不是创建额外的临时变量,只需根据键值名称访问数组中的数据:

// This function will convert multi-dimensional array to a single dimensional one
// If two items have the same keys - the former will be overwritten
function flatten(array $array)
{
    $return = array();
    array_walk_recursive($array, function($a, $key) use (&$return) { $return[$key] = $a; });
    return $return;
}

// This is a wrapper for the whole feature - flatten array and look for a key
function nested_key_search(array $array, $key)
{
    $flat = flatten($array);
    return $flat[$key] ?: false;
}

print_r(nested_key_search($array, 'coffee'));
 类似资料:
  • 问题内容: 这个问题不太可能对将来的访客有所帮助;它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 我得到一个页面网址,例如。现在,有人告诉我将b的值更改为5,以使其变为。 即从更改为 注意:此处的变量b可以引用任何名称。 问题答案: 采用 从URL中提取查询字符串 将查询字符串拆分为一

  • 本文向大家介绍PHP list() 将数组中的值赋给变量的简单实例,包括了PHP list() 将数组中的值赋给变量的简单实例的使用技巧和注意事项,需要的朋友参考一下 list() PHP list() 用一步操作把数组中的值赋给一些变量。同 array() 一样,list() 不是真正的函数,而是语言结构。 语法: void list( mixed var, mixed ... )注意: lis

  • 问题内容: 我希望能够以字符串的形式获取变量的名称,但是我不知道Python是否具有这么多的自省功能。就像是: 我想这样做是因为我想把一堆变量变成一个像这样的字典: 但是我想要比这更自动的东西。 Python具有和,所以我猜有办法。 问题答案: 您要这样做吗? 例

  • 问题内容: 第一个System.out打印 2 并且应该打印,而第二个System打印 65 。我已经用这种语言编程了一年多了,据我所知这是不可能发生的!有什么帮助吗? 上面的代码在两行上都显示 9 。 问题答案: 当你这样做,之前仅仅是一个参考阵列, NO 新阵列已创建并分配给。因此,当您查看自己的价值时,基本上就是查看的价值,反之亦然。只是的别名。这就是为什么在第二张照片中您得到65。 检查该

  • 本文向大家介绍PHP简单实现解析xml为数组的方法,包括了PHP简单实现解析xml为数组的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP简单实现解析xml为数组的方法。分享给大家供大家参考,具体如下: 最近想要做一个插件机制,需要用到xml,在解析xml时候需要转换为数组,特意记录一个此种解析方式 xmlDemo.xml文件: php代码: 运行结果: PS:这里再为大家提供几

  • 本文向大家介绍php简单统计字符串单词数量的方法,包括了php简单统计字符串单词数量的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单统计字符串单词数量的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。