【发布时间】:2018-01-06 18:58:00
【问题描述】:
我正在尝试获取最内层数组键的字符串值但是,Food & Drink、Candy 和 Tea or Coffee Sets 只是返回为Array。
<?php
$categoryParents = array(
'Food & Drink' => array(
'Beverages' => array(
'Energy & Sports Drinks',
'Wine & Champagne'
),
'Candy' => array(
'Chewing Gum',
'Lollipops',
'Jelly Beans'
),
'Candy Dishes',
'Food Gifts',
'Fruit',
'Popcorn',
'Pretzels',
'Seeds',
'Spices',
'Tea Or Coffee Sets' => array(
'Coffee',
'Tea'
),
'Water'
)
);
foreach ($categoryParents as $pcat => $psubcats) {
foreach ($psubcats as $psubcat) {
if (is_array($psubcat) && sizeof($psubcat) > 0) {
print_r($psubcat . " <-- parent test \n");
foreach ($psubcat as $psub2cat) {
print_r($psub2cat . " <-- sub \n");
}
} else {
print_r($psubcat . "<-- parent \n");
}
}
}
?>
这个脚本在我的机器上的输出如下:
PHP Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Array <-- parent test
Energy & Sports Drinks <-- sub
Wine & Champagne <-- sub
PHP Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Array <-- parent test
Chewing Gum <-- sub
Lollipops <-- sub
Jelly Beans <-- sub
Candy Dishes<-- parent
Food Gifts<-- parent
Fruit<-- parent
Popcorn<-- parent
Pretzels<-- parent
Seeds<-- parent
Spices<-- parent
PHP Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Notice: Array to string conversion in /Users/guy/Desktop/test-2.php on line 34
Array <-- parent test
Coffee <-- sub
Tea <-- sub
Water<-- parent
这与我使该脚本正常工作一样接近。我很确定我在嵌套的 foreach 循环中丢失了一大块条件逻辑,我只是无法再考虑它了。任何指导将不胜感激。
【问题讨论】:
标签: php arrays multidimensional-array foreach