我这里有一个嵌套的多维数组:
Array
(
[merchant] => Array
(
[XML_Serializer_Tag] => Array
(
[id] => 736
[name] => Cadbury Gifts Direct
)
[prod] => Array
(
[XML_Serializer_Tag] => Array
(
[0] => Array
(
[XML_Serializer_Tag] => Array
(
[id] => 88966064
[pre_order] => no
[web_offer] => no
[in_stock] => no
[stock_quantity] => 0
)
[pId] => 608
[isbn] => 0000000000000
[text] => Array
(
[name] => 50% OFF 56g Creme Egg Minis
[desc] => 50% OFF Creme Egg Minis in a 56g bag.
)
[uri] => Array
(
[awTrack] => http://www.awin1.com/pclick.php?p=88966064&a=67702&m=736
[awThumb] => http://images.productserve.com/thumb/736/88966064.jpg
[awImage] => http://images.productserve.com/preview/736/88966064.jpg
[mLink] => http://www.cadburygiftsdirect.co.uk/products/608-50-off-56g-creme-egg-minis.aspx
[mImage] => http://www.cadburygiftsdirect.co.uk/images/thumbs/0001084.png
)
[price] => Array
(
[XML_Serializer_Tag] => Array
(
[curr] => GBP
)
[buynow] => 0.31
[store] => 0.00
[rrp] => 0.00
[delivery] => 0.00
)
[cat] => Array
(
[awCatId] => 437
[awCat] => Chocolate
[mCat] => Full Range
)
[brand] =>
[valFrom] => 0000-00-00
[valTo] => 0000-00-00
[comAmount] => 0.00
)
之后的段循环。
所以...
[1] => Array
[2] => Array
[3] => Array
ETC...
我需要找到每个数组段的属性名称。
所以我使用了这个递归循环:
private function recursive_array($old_array, $new_array = array()) {
foreach ($old_array as $key => $value) {
if (is_array($value) && $key < 1) {
$new_array = $this->recursive_array($value, $new_array);
} else {
if ($key < 1) {
$new_array[] = $key;
}
}
}
return $new_array;
}
这是输出:
array
0 => string 'id' (length=2)
1 => string 'name' (length=4)
2 => string 'id' (length=2)
3 => string 'pre_order' (length=9)
4 => string 'web_offer' (length=9)
5 => string 'in_stock' (length=8)
6 => string 'stock_quantity' (length=14)
7 => string 'pId' (length=3)
8 => string 'isbn' (length=4)
9 => string 'name' (length=4)
10 => string 'desc' (length=4)
11 => string 'awTrack' (length=7)
12 => string 'awThumb' (length=7)
13 => string 'awImage' (length=7)
14 => string 'mLink' (length=5)
15 => string 'mImage' (length=6)
16 => string 'curr' (length=4)
17 => string 'buynow' (length=6)
18 => string 'store' (length=5)
19 => string 'rrp' (length=3)
20 => string 'delivery' (length=8)
21 => string 'awCatId' (length=7)
22 => string 'awCat' (length=5)
23 => string 'mCat' (length=4)
24 => string 'brand' (length=5)
25 => string 'valFrom' (length=7)
26 => string 'valTo' (length=5)
27 => string 'comAmount' (length=9
它还拾取的是顶部嵌套数组:
[XML_Serializer_Tag] => Array
(
[id] => 736
[name] => Cadbury Gifts Direct
)
这只是整个提要的详细信息,而不是各个部分。
我需要一种过滤掉顶部嵌套数组的方法,但请记住细节是动态的,因此键的名称可以从一个提要更改为下一个提要