PHP多维数组不显示值

时间:2013-08-16 20:48:31

标签: php for-loop multidimensional-array foreach

我上下搜索,但似乎无法让这个数组正常运行,我遗漏了一些简单但无法弄清楚到底是什么。

<?php

    $dates2 = 'Aug 30, 2013';
    $dates3 = 'Sep 13, 2013';

    $cards[0] = array(
        'card' => 'Discover',
        'pay'  => '875', 
        'when' => array('
            'Sep 03, 2013', 
            'Oct 03, 2013', 
            'Nov 03, 2013',
            'Dec 03, 2013'
        ),                    
    );
    $cards[1] = array(
        'card' => 'Visa',
        'pay'  => '375', 
        'when' => array(
            'Sep 23, 2013', 
            'Oct 23, 2013', 
            'Nov 23, 2013',
            'Dec 23, 2013'
        ),        
    );
    $cards[2] = array(
        'card' => 'Mastercard',
        'pay'  => '1025', 
        'when' => array(
            'Sep 12, 2013', 
            'Oct 13, 2013', 
            'Nov 13, 2013',
            'Dec 13, 2013'
        ),
    );
    $cards[3] = array(
        'card' => 'Amex',
        'pay'  => '650', 
        'when' => array(
            'Aug 25, 2013', 
            'Sep 05, 2013', 
            'Oct 25, 2013',
            'Nov 25, 2013'
        ),
    );

    for ($i=0; $i<=3; $i++){  
        if ($cards[$i]['when'][$i] > $dates2 && ($cards[$i]['when'][$i] < $dates3) or ($cards[$i]['when'][$i] == $dates2)) {
            print "<tr>
                <td>$cards[$i]['card']</td>
                <td><input class='amount' size='3' value='$cards[$i]['pay']'></td>
            </tr>";                                  
         } 
     }

?>

输出:数组['卡']数组['卡']数组['卡']数组['卡']

3 个答案:

答案 0 :(得分:1)

这是你的输出声明,这对我来说是固定的:

print "<tr><td>" . $cards[$i]['card'] . "</td><td><input class='amount' size='3' value='" . $cards[$i]['pay'] . "'></td></tr>";

答案 1 :(得分:1)

参考:Variable parsing

  

变量解析

     

当用双引号或heredoc,变量指定字符串时   在其中解析。

     

有两种类型的语法:简单语法和复杂语法。该   简单的语法是最常见和方便的。它提供了一种方法   在字符串中嵌入变量,数组值或对象属性   尽力而为。

     

复杂的语法可以通过周围的花括号识别   表达。

<强>更新

请阅读“简单语法”,尤其是针对此特定情况的“复杂语法”。

print "<tr>
           <td>{$cards[$i]['card']}</td>
           <td><input class='amount' size='3' value='{$cards[$i]['pay']}'></td>
       </tr>";

答案 2 :(得分:1)

您需要连接变量或重置它们然后打印它们。

DEMO PHPfiddle http://phpfiddle.org/main/code/ia5-dh6

这是他们重置

DEMO PHPfiddle http://phpfiddle.org/main/code/7if-nd3

注意我也添加了缺少的表格标签

$CardType = $cards[$i]['card'];
$Payment = $cards[$i]['pay'];

print "<tr>
         <td>$CardType</td>
         <td><input class='amount' size='3' value='$Payment'></td>
       </tr>";