用php中的另一个数组替换数组的值

时间:2017-05-23 15:58:43

标签: php arrays

所以,我正在尝试显示利润和支出在图表上呈现的图表。如果图表中没有利润和支付值,那么它应该显示为0.

我有一个数组,其中包含利润和支出的小时值。现在我想用现有的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));

此代码有问题。任何人都可以告诉我我做错了什么吗?

3 个答案:

答案 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);
?>

你正在以错误的方式使用for循环,SyntaxError

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

}

答案 1 :(得分:0)

首先,你的For Loop是不正确的!你必须更换&#34;,&#34;用&#34;;&#34;

答案 2 :(得分: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));

希望这有帮助!