关于php中的数组管理

时间:2013-10-01 01:58:39

标签: php arrays

所以我有一个二维数组,有两列,付款和日。问题是每天都没有付款,因此我的数组只包含付款的特定日期。

  

付款------日

     

13000 ----------- 3

     

2500 ------------- 4

     

6700 ------------ 8

所以,我想要每月一个包含31个字段的数组,如果没有付款,请说明第一天array[0] = 0;。我曾考虑过使用in_array专门查找每一天:

for ($i=1; $i <=31 ; $i++) { 
    if(in_array($i, $payments))
}

但即使我找到了一天,如何访问该特定列的数组['付款']字段?

3 个答案:

答案 0 :(得分:1)

使用与array_search()类似的in_array()除了返回密钥之外怎么样?

for ($i=1; $i <=31 ; $i++) { 
    $row = array_search($i, $payments);
    if($row !== FALSE) {
        //Do something with $payments[$row]['payment']
    }
}

如果我误解你的阵列结构,请告诉我。

答案 1 :(得分:0)

您应该让数组以日期编号作为键,将付款作为值。然后,您可以使用简单的isset()检查数组是否包含任何记录:

$payments = array(
    3 => 13000,
    4 => 2500,
    8 => 6700,
);
for ($i=1; $i <=31 ; $i++) { 
    if (isset($payments[$i])) {
         echo $payments[$i] . "\n";
    }
}

答案 2 :(得分:0)

以下列方式从查询中创建数组:

$payments = array();
while ($row = $stmt->fetch_assoc()) {
    $payments[$row['day']] = $row['payment'];
}

然后,您可以使用isset($payments[$i])来判断您是否有特定日期的付款。