这可能是一个简单的问题,但我正在转储一个绝对巨大的对象 ($this),我需要到达数组中的特定点
$this->varA->varB->varC->varD->what_I_need
我知道我需要的变量在那里,我可以使用 ctrl+f 来找到它,但是数组是如此嵌套,以至于我不知道我应该如何在 PHP 中找到它。关于最好的方法是什么的任何想法?
这可能是一个简单的问题,但我正在转储一个绝对巨大的对象 ($this),我需要到达数组中的特定点
$this->varA->varB->varC->varD->what_I_need
我知道我需要的变量在那里,我可以使用 ctrl+f 来找到它,但是数组是如此嵌套,以至于我不知道我应该如何在 PHP 中找到它。关于最好的方法是什么的任何想法?
不要犹豫,从框架中查看库。
[CakePHP] 制作了一个很棒的类,它能够使用点语法符号中的字符串导航到数组中。这个库被称为Hash,看看它。
如果你有这个:
$var = array(
'Element1' => array(
'First_rule' => true,
'Second_rule' => false,
),
'Element2' => array(
'First_rule' => 'none',
'Other_rule' => 'otherone',
),
);
您可以简单地使用字符串从该数组中提取数据。
您只能从特定元素中获取一个信息:
$extracted_other_rule = Hash::extract($var, 'Element2.Other_rule');
返回:
Array
(
[0] => otherone
)
或者您甚至可以从包含它的数组中的任何元素中提取所有“First_rule”索引:
$extracted_rules = Hash::extract($var, '{s}.First_rule');
返回这个:
Array
(
[0] => 1
[1] => none
)
如果您需要浏览一个深度未定义的巨大数组,只需创建一个递归函数,将名为“$path”的字符串传输到递归操作。我做了一个这样的大函数,将整个 XML 流解析为 JSON 字符串,所有键都用我自己的规则解析,并带有一组参数。