gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:58:07 24 4
gpt4 key购买 nike

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

数组([响应] => 数组([成功] => 1 [结果] => 数组([成功] => 数组([0] => 数组([id] => 16623749 [device_id] => 22233 [message] => hi gg 2 [status] => pending [send_at] => 1463693469 [queued_at] => 0 [sent_at] => 0 [delivered_at] => 0 [expires_at] => 1463697069 [canceled_at] => 0 [failed_at] => 0 [received_at] => 0 [error] => [created_at] => 1463693469 [contact] => Array ( [id] => 3801452 [name] => Gg [number] => +64210419805 ) ) ) [失败] => 数组 ( ) ) ) [状态] => 200 )

这是数组的格式化版本:

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
)

最佳答案

您可以使用 extract() 来做到这一点,例如。 extract($array, EXTR_OVERWRITE),但是你需要注意一些事情:

  1. 如果有两个项目具有相同的键 - 一个必须被覆盖或跳过。这是你自己任务的局限性。

  2. 我看到您有嵌套数组,extract() 可能不够智能,无法处理这些数组,但您可以尝试此处建议的 nested_extract() 方法:http://php.net/manual/en/function.extract.php (见评论区)

  3. 无论如何我都不建议这样做。如果您只需要一种简单的方法来访问数组内的数据 - 只需编写一个智能查找器函数来查找嵌套数组中的特定键。

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

// 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'));

关于php - 将 php 数组更改为单个变量的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com