我有这个php关联输入数组。
array(
(int) 0 => array(
'Data' => array(
'id' => '12',
'type_id' => '1',
'data_value' => '35.5000'
),
'Type' => array(
'id' => '1',
'name' => 'Temperature'
)
),
(int) 1 => array(
'Data' => array(
'id' => '11',
'type_id' => '1',
'data_value' => '33.7000'
),
'Type' => array(
'id' => '1',
'name' => 'Temperature'
)
)
我想将其转换为此输出数组;
array(
(int) 0 => array(
(int) 0 => array(
'v' => (int) 1
),
(int) 1 => array(
'v' => '35.5000'
)
),
(int) 1 => array(
(int) 0 => array(
'v' => (int) 2
),
(int) 1 => array(
'v' => '33.7000'
)
)
元素data_value从输入数组中提取到输出数组中。
我写的代码看起来像这样;
$data2 = array();
foreach ($InputArray as $key=>$value)
{
$data2[] = array(
array(
array('v' => $key),
array('v' => $value['Data']['data_value'])
)
);
}
不幸的是,这段代码不起作用。此代码的输出如下所示;
array(
(int) 0 => array(
(int) 0 => array(
(int) 0 => array(
[maximum depth reached]
),
(int) 1 => array(
[maximum depth reached]
)
)
),
(int) 1 => array(
(int) 0 => array(
(int) 0 => array(
[maximum depth reached]
),
(int) 1 => array(
[maximum depth reached]
)
)
)
我做错了什么?为什么我会收到错误"达到最大深度"?如何检索所需的输出数组?我实际上是在cakephp中这样做。
非常感谢您的帮助。
答案 0 :(得分:4)
这是一个包裹array()
到很多人:
$data2 = array();
foreach ($InputArray as $key=>$value)
{
$data2[] = array(
array('v' => $key),
array('v' => $value['Data']['data_value'])
);
}
答案 1 :(得分:1)
据我所知,问题与PHP http://www.hardened-php.net/suhosin/configuration.html#suhosin.executor.max_depth的设置有关。你可以咨询你的托管服务提供商吗?