0

好吧,我在我的电脑上敲我的头...... 我不知道发生了什么事。我正在使用 PHP 对远程数据库进行肥皂调用……我正在运行 4 个查询,合并两个多维数组并返回它们。

数组看起来很干净,但是当我显示结果时,它们会重复。

这是调用后的一个示例:

$row = $response;
$count = count($row);
for($i=0;$i<=$count-1;$i++){
$product = $row[$i]['Product'];
$color = $row[$i]['Color'];
$type = $row[$i]['Type'];
$length = $row[$i]['Length'];
$render = '<li><div id="somediv">strong>' . $product . '</strong><br />Color: ' . $color . '<br />' .  ‘ Size: ' . $length .  '<input type="button" value="value" onclick="someaction(' . $i . ')" />' . '</div></li>';
}

这是返回的数组中的一个重复问题:

[11] => Array ( 
                    [Product] => Some Product 
                    [Color] => Some Color 
                    [Type] => C 
                    [Length] => 150 
              )

然而,它重复了同样的事情。它只对少数产品做到这一点:


  • 部分产品
    颜色:部分颜色
    尺寸:150
    价格:4.79

    </li>
    


  • 部分产品
    颜色:部分颜色
    尺寸:150
    价格:4.79

    </li>
    


  • 部分产品
    颜色:部分颜色
    尺寸:150
    价格:4.79

    </li>
    


  • 部分产品
    颜色:部分颜色
    尺寸:150
    价格:4.79

    </li>
    
  • 4

    3 回答 3

    0

    抱歉,我是个假人……我忘了我隐藏了一些值,所以它一直在重复,直到显示下一个取消隐藏值

    于 2013-06-26T18:44:50.780 回答
    0

    好的,我要更新我的答案。我在 foreach 的末尾放置了 if 语句,它会为不存在的元素重复一个元素。我有两个原始的 if 语句,所以我将最后的 if 语句移到了它们基本上代表的 if 语句中,并且它起作用了。

    这是第一个代码示例:

    <?php 
    $row = $response;
    
    $count = count($row);
    
    
    
    
    for($i=0;$i<=$count-1;$i++){
    
    @$type = $row[$i]['Type'];  
    
    if ($type == 'something') {
    $someproduct = $row[$i]['someproduct'];
    $somecolor = $row[$i]['somecolor'];
    $length = $row[$i]['Length'];
    
    
    
    
    if ($type == 'this') {
    
    
    
    $img = 'myimage';
    
    $this = $img . '<div id="somediv"><br /><strong>' . $someproduct . 'somecolor: ' . $somecolor . '<input type="button" value="value" onclick="somefunction(' . $i . ')" />' . '</div></div></li>';
    
    
    
    
    }
    if ($type == 'that') {
    
    
    
    $img = 'myimage';
    
    $that = $img . '<div id="somediv"><br /><strong>' . $someproduct . 'somecolor: ' . $somecolor . '<input type="button" value="value" onclick="somefunction(' . $i . ')" />' . '</div></div></li>';
    
    
    
    
    }
    
    
    
    
    if (!isset($whatever) || $whatever == 'that') {
    
    
    echo $that;
    
    
    }
    
    if (!isset($whatever) || $whatever == 'this') {
    
    
    echo $this;
    
    
    }
    
    
    
    
    }
    }
    
    
    
    ?>
    

    这是变化。我在这个项目上工作了很长时间,我忽略了我应该知道的小东西。

    <?php 
    $row = $response;
    
    $count = count($row);
    
    
    
    
    for($i=0;$i<=$count-1;$i++){
    
    @$type = $row[$i]['Type'];  
    
    if ($type == 'something') {
    $someproduct = $row[$i]['someproduct'];
    $somecolor = $row[$i]['somecolor'];
    $length = $row[$i]['Length'];
    
    
    
    
    if ($type == 'this') {
    
    
    
    $img = 'myimage';
    
    $this = $img . '<div id="somediv"><br /><strong>' . $someproduct . 'somecolor: ' . $somecolor . '<input type="button" value="value" onclick="somefunction(' . $i . ')" />' . '</div></div></li>';
    
    
    if (!isset($whatever) || $whatever == 'this') {
    
    
    echo $this;
    
    
    }
    
    }
    if ($type == 'that') {
    
    
    
    $img = 'myimage';
    
    $that = $img . '<div id="somediv"><br /><strong>' . $someproduct . 'somecolor: ' . $somecolor . '<input type="button" value="value" onclick="somefunction(' . $i . ')" />' . '</div></div></li>';
    
    
    if (!isset($whatever) || $whatever == 'that') {
    
    
    echo $that;
    
    
    }
    
    }
    
    
    
    
    
    
    
    
    
    }
    }
    
    
    
    ?>
    

    感谢您的建议和帮助

    于 2013-06-27T19:39:59.023 回答
    0

    做一个print_r($row)这将告诉你你的数组中有什么。如果值在那里,则打印不是问题,而是生成数组。

    于 2013-06-26T18:42:25.053 回答