配列値の値「0」を前の非ゼロ数値に置きたいと思います。現在の値がゼロの場合、以前の値で配列を設定します。
配列の現在の構造は以下の通りです:
誰も助けてもらえますか?
Array
(
[2016-06-16] => -143
[2016-06-17] => 0
[2016-06-18] => 0
[2016-06-19] => 0
[2016-06-20] => -28
[2016-06-21] => 517
[2016-06-22] => 0
[2016-06-23] => -218
[2016-06-24] => 0
[2016-06-25] => 27
[2016-06-26] => 0
[2016-06-27] => 0
[2016-06-28] => 0
[2016-06-29] => 0
[2016-06-30] => -798
[2016-07-01] => 0
[2016-07-02] => 0
[2016-07-03] => 0
[2016-07-04] => 0
[2016-07-05] => 0
[2016-07-06] => 0
[2016-07-07] => 0
)
予想される構造
Array
(
[2016-06-16] => -143
[2016-06-17] => -143
[2016-06-18] => -143
[2016-06-19] => -143
[2016-06-20] => -28
[2016-06-21] => 517
[2016-06-22] => 517
[2016-06-23] => -218
[2016-06-24] => -218
[2016-06-25] => 27
[2016-06-26] => 27
[2016-06-27] => 27
[2016-06-28] => 27
[2016-06-29] => 27
[2016-06-30] => -798
[2016-07-01] => -798
[2016-07-02] => -798
[2016-07-03] => -798
[2016-07-04] => -798
[2016-07-05] => -798
[2016-07-06] => -798
[2016-07-07] => -798
)
Iはコードの下に使用してみましたが、それはエラーを表示し、変更する上では、最大で最初の値を変更します。
foreach ($jsonstatisticsData as $arrdata=> $val)
{
if($val==0){
$prevarray=prev($jsonstatisticsData);
$prev_value= $prevarray[$arrdata];
$jsonstatisticsData[$arrdata]=$prev_value;
}
}
を? – vaso123
'あるarray_walk( $データ、 関数(&$値)0 =前{ 静的$; IF($値== 0){ $値= $前; } $以前= $値; } ); ' –