【问题标题】:PHP Specials foreach multidimensional arrayPHP Specials foreach 多维数组
【发布时间】:2015-08-13 15:54:36
【问题描述】:

我有这样的数组

$specials = array( 1 => array('word' => array('first', 'two', 'three'), 'digit' => array(1,2,3)),
                   2 => array('word' => array('four','five', 'six'), 'digit' => array(4,5,6)), 
                   3 => array('word' => array('seven', 'eight', 'nine'), 'digit' => array(7,8,9)),
                   4 => array('word' => array('ten','eleven', 'twelve'), 'digit' => array(10,11,12)) 
                   );

以及为什么我要这样 foreach 3 次

foreach($specials as  $val) {
    foreach($val as $valData) {
        foreach($valData as $value) {
            echo $value.'<br/>';
        }
    }
} 

但是如何正确循环或 foreach 并使用这样的索引名称?

echo $value['word'];
echo $value['digit'];

如果echo $value['digit'],我会收到错误警告

Warning: Illegal string offset 'digit' in ~/public_html/test/array.php on line 58

我需要不同 HTML 和 CSS 每个值的输出

<div class="digit"><?=$value['digit']?></div> <div class="word"><?=$value['word']?></div>

【问题讨论】:

  • 您的问题/问题是什么?您当前的输出是什么,您期望什么?
  • 应该打印什么$value['digit']$value['word']
  • 请重新阅读所有cmets,然后再尝试回答问题
  • @coder5 请在以下文本中填写... 字段: 1) 我当前输出的上述代码是...? 2)我对上面播种代码的预期输出是......? 3)我希望从$value['word'] 获得价值......?
  • @Leggendario 耐心我的朋友 :) 如果我在 SO 上学到了东西,那么你需要很大的耐心。

标签: php multidimensional-array foreach


【解决方案1】:
foreach($specials as  $val) {
    foreach($val as $key => $valData) {
        // $key is now either 'word' or 'digit'
        foreach($valData as $value) {
            echo "<div class='$key'>$value</div>";
        }
    }
} 

【讨论】:

  • 我不能这样做..因为我需要使用不同样式的 html 和 css
    =$value['digit']?>
    =$value['word']?>
  • @coder5 既然我们不知道你的最终输出应该是什么样子,为什么你不能使用上面例子中的 $key 值来处理 css 类?
  • 好吧,很好的解决方案,为什么很多 cmets 只是问周围而不给我答案:'(
  • @coder5 为什么很多 cmets 因为你的问题很不清楚。
  • 我已经编辑了问题因为我需要不同样式的 HTML 或 CSS 类每个值:'(
猜你喜欢
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多