【问题标题】:problems with php array. Can anyone tell me where this is wrong?php数组的问题。谁能告诉我这是哪里错了?
【发布时间】:2012-03-05 01:31:23
【问题描述】:

我有一个遇到问题的数组。第一个问题是我不能让它只生成包含在 div 中的每个数组。这会产生两个 div,一个是空的。我已经尝试了所有可能的代码组合,但我认为我缺少一些简单的东西。

我遇到的另一个主要问题是我希望能够分离数组的内容。例如,我希望将数组的一部分包含在标签中,而将另一部分用作 id。

我只是把这段代码弄得更乱了,我认为它可能很简单。这是下面的代码。

$jsonIterator = new
RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST); // multiple lines only for this forum
if (count($jsonIterator) > 0) {
    foreach ($jsonIterator as $key => $val) {
        if(is_array($val)) {
            $cnt = count($val);
            echo '</div>';
            echo '<div class="ui-state-default">';
        }
        else {
            echo $val;
        }
    }
}

这是 html 输出..

<div class="ui-state-default"></div><div class="ui-state-default">node_1006defaultzzzzz</div>

如您所见,有一个额外的不需要的 div 类和关闭 div。

【问题讨论】:

  • 从您当前的 sn-p 看来,您将有一个不匹配的 &lt;/div&gt;(在第一个 $val 之后)和一个不匹配的 &lt;div&gt;(在最后一个 $val 之后)? - 你是在代码的其他地方打开第一个/关闭最后一个吗?
  • 你能举个例子吗?如果我们能看到整个代码以及一个工作示例,我们可能会提供更多帮助。
  • 嗨。我尝试将 div 放置在很多地方。奇怪的是,这是我最接近它应该输出的方式。但它总是输出一个空白 div,每隔一段时间。在 div 总是完全结束之前,或者在数组中的每次迭代之前。希望这是有道理的。
  • 没问题。我在下面添加了输出。
    node_1006defaultzzzzz
  • 你能在 foreach 之前 var_dump 或 print_r var $jsonIterator 吗?并在此处发布数组内容。

标签: php arrays for-loop


【解决方案1】:

你不能把值放到一个数组中然后这样做

..
$values = array();
foreach ($jsonIterator as $key => $val) {
     if(is_array($val)) {
         $cnt = count($val);   
         ...
     } else { 
         $values[] = $val;
     } 
} 
..

foreach($values as $val){
   echo '<div class="ui-state-default">' . $val . '</div>;

}

【讨论】:

  • 感谢您的回复。我试过这个,但它和以前一样。即输出是每个数组元素上的一个 div。这是一个数组。
    node_1005
    默认
    。我只是在开始和结束时需要它,而不是在每个节点上。
  • for if(is_array($val)) { 让你的 else 成为 else if($val != '') 的一部分
  • 感谢 blackpla9ue。我尝试添加 else if($val != '')。仍然没有喜悦。我只是得到解析错误。我尝试更改语法,但无法清除错误。任何想法。
  • 猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 2023-03-12
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多