0

次の配列があり、1か月の日が曜日でグループ化されています。

Array
(
    [3] => Array
        (
            [0] => 1
            [1] => 8
            [2] => 15
            [3] => 22
            [4] => 29
        )

    [4] => Array
        (
            [0] => 2
            [1] => 9
            [2] => 16
            [3] => 23
            [4] => 30
        )

    [5] => Array
        (
            [0] => 3
            [1] => 10
            [2] => 17
            [3] => 24
            [4] => 31
        )

    [1] => Array
        (
            [0] => 6
            [1] => 13
            [2] => 20
            [3] => 27
        )

    [2] => Array
        (
            [0] => 7
            [1] => 14
            [2] => 21
            [3] => 28
        )

)

ご覧のとおり、すべての配列には5つの要素がありますが、最後の2つには4つの要素があります。

最後の2つの配列を埋めて、5つの要素も持つことができるようにするにはどうすればよいですか?

空の値で埋めたいので、htmlテーブルを印刷すると、31日目以降は何も印刷されません。

どうもありがとう

4

3 に答える 3

1

コメントが示唆するように、データの修正を印刷用に行うのではなく、データの修正を行うことを本当に主張する場合は、次のarray_padように 使用できます。

$days = array(....) // that's your original array
foreach($days as $key => $val){
    if(count($val)<5)
        $days[$key] = array_pad($val, 5, 0);
}

長さに達するまでarray_pad($val, 5, 0);配列を'sで埋めます。05

于 2012-09-24T15:07:13.067 に答える
0

array_pad()を使用してこれを行うことができます。

$data = array(
    array(1, 2, 3, 4, 5),
    array(3, 4, 5),
    array(4, 9, 10, 11),
    array(1, 3, 5, 7, 8)
);

var_dump(array_map(function($val) { 
  return array_pad($val, 5, ''); 
}, $data));

出力

array
  0 => 
    array
      0 => int 1
      1 => int 2
      2 => int 3
      3 => int 4
      4 => int 5
  1 => 
    array
      0 => int 3
      1 => int 4
      2 => int 5
      3 => string '' (length=0)
      4 => string '' (length=0)
  2 => 
    array
      0 => int 4
      1 => int 9
      2 => int 10
      3 => int 11
      4 => string '' (length=0)
  3 => 
    array
      0 => int 1
      1 => int 3
      2 => int 5
      3 => int 7
      4 => int 8
于 2012-09-24T15:01:48.987 に答える
0

multidに値を追加します。array_pushを使用した配列は次のようになります。

array_push ($array[1]['something'], "value"); 

あなたの例では:

array_push ($array[count($array)][4], 99); 
array_push ($array[count($array)-1][4], 99); 
于 2012-09-24T15:03:01.683 に答える