【问题标题】:PHP - String value of Key of Multidimensional Array inside nested foreach loopsPHP - 嵌套 foreach 循环内多维数组键的字符串值
【发布时间】:2018-01-06 18:58:00
【问题描述】:

我正在尝试获取最内层数组键的字符串值但是,Food & DrinkCandyTea 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


    【解决方案1】:

    编写此片段以打印数组键

    foreach ($psubcats as $k => $psubcat) {
        if (is_array($psubcat) && sizeof($psubcat) > 0) {
          print_r($k . " <-- parent test \n");
    

    demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2016-06-15
      相关资源
      最近更新 更多