2017-05-23 7 views
0

私は、利益と配当がチャート上でレンダリングされているチャートを表示しようとしています。チャートに利益と配当性の値がない場合は、0を表示する必要があります。配列の値をPHPの別の配列に置き換えよう

私は、利益と払い出し時間の値の配列を持っています。今私は配列を0値の既存の配列に置き換えたいと思う。ここで

は私のコードは、このコードで何か問題があり

$a1=array(); 
for($i=0,$i<=24,$i++){ 
    $a1['hour']=$i; 
    $a1['payout']='0'; 
    $a1['profit']='0'; 
} 

$a2=array(); 
$a2['hour']='2'; 
$a2['profit']='300'; 
$a2['payout']='100'; 
print_r(array_replace($a1,$a2)); 

です。 any1は私が間違っていることを教えてくれる?あなたは間違った方法で、forループを使用している

+0

'forloop'の目的は何ですか?最後に '$ a1 ['hour']'は常に24になります。 –

+0

@PriyeshKumarご質問ありがとうございます – mohit

+0

質問を編集して予想される出力を追加してください –

答えて

1
<?php 

// Initial array 
$a1=array(); 

for($i=0;$i<=24;$i++){ 

    // Use hour as index of array, if you use $a2[] = array(), it works 
    // But problem is when you change hours, lets say 12-24, if will cause problem 

    $a1[$i] = array(
     'hour'=> $i, 
     'payout'=> 0, 
     'profit'=> 0 
    ); 
} 

// Array from database 
$a2=array(); 
$a2[] = array(
    'hour'=> 2, 
    'payout'=> 300, 
    'profit'=> 100 
); 
$a2[] = array(
    'hour'=> 5, 
    'payout'=> 3500, 
    'profit'=> 1200 
); 

echo '<pre>'; 

// Loop through second array and check if it is there in first one. 
foreach($a2 as $item) { 
    if(isset($a1[$item['hour']])) { 
     // Replace the values 
     $a1[$item['hour']] = $item; 
    } 
} 
print_r($a1); 
?> 

、でSyntaxError

for($i=0;$i<=24;$i++){ // <= See semi colons 

} 
+0

'$ a1 = array(); $ a1 [] = array( 'hour' => $ i); for($ i = 0; $ i <= 24; $ i ++); $ a1 [] = array( 'ペイアウト' => '0'); $ a1 [] =配列( '時間' => '0'); } $ a2 = array(); $ a2 ['時間'] = '2'; $ a2 ['profit'] = '300'; $ a2 ['payout'] = '100'; print_r(array_replace($ a1、$ a2)); ' 私はちょうど私のコードを変更し、私は希望の出力を得ていません。 お手伝いできますか? – mohit

+0

いつでも助けてくれて – mohit

+0

^_^..... –

0

すべてのforループの最初には正しくありません! "、"を ";"に置き換える必要があります。

0

プログラムに構文エラーがあります。

作業プログラムは、このことができます。この

$a1=array(); 
    for($i=0;$i<=24;$i++){ 
     $a1['hour']=$i; 
     $a1['payout']='0'; 
     $a1['profit']='0'; 
    } 

    $a2=array(); 
    $a2['hour']='2'; 
    $a2['profit']='300'; 
    $a2['payout']='100'; 
    print_r(array_replace($a1,$a2)); 

希望のようになります!

関連する問題