【问题标题】:How to compare two array values in PHP如何在PHP中比较两个数组值
【发布时间】:2012-08-16 03:39:01
【问题描述】:

我有两个功能,第一个是:

   public function computeGHComponents()
    {
      error_reporting (E_ALL^ E_NOTICE);          

      $totals = NULL;

      foreach ($this->transaction as $t){

          $amount = (float) $t['Amount'];



            if (isset($totals[ $t['SiteID'] ][ $t['TransactionType'] ])){
                $totals[ $t['SiteID'] ][ $t['TransactionType'] ] += (float) $amount;
            } else {
                $totals[ $t['SiteID'] ][ $t['TransactionType'] ] = (float) $amount;
            }
        }

     foreach($totals as $key => $value)

        {

         $this->result[$key]['Deposit'] = isset($value['D']) ? $value['D'] : 0;
         $this->result[$key]['Reload']  = isset($value['R']) ? $value['R'] : 0; 
         $this->result[$key]['Redemption'] = isset($value['W']) ? $value['W'] : 0;

       }
    echo "<pre>";

  print_r($this->result);

} 

第二个功能是:

    public function bindOwnerToSites(){

     error_reporting (E_ALL^ E_NOTICE);  

    foreach( $this->balance as $keysaa =>$key_valuesa)//getsitebalance
            { 
                foreach( $this->sites as $keys=>$key_values)//getsites
                  {

                        if  ($key_values['SiteID'] == $key_valuesa['SiteID'])
                        {

                         $this->arrays[$key_valuesa['SiteID']] = array('SiteID'=>$key_valuesa['SiteID'],'Balance'=>$key_valuesa['Balance'],'MinBalance'=>$key_valuesa['MinBalance'],'MaxBalance'=>$key_valuesa['MaxBalance'],'OwnerAID'=>$key_values['OwnerAID'],'GroupID'=>1);    

                        }
                 }

            }
       print_r ($this->arrays,$return=null);  
    }

现在我需要比较两个 SiteID 以进行绑定,这是我的功能:

    public function bindGHComponentsToSites()
    {
    error_reporting (E_ALL^ E_NOTICE);  


     foreach ($this->arrays as $keys => $data) {

        foreach($this->result as $key => $value){


    if ($data['SiteID'] == $value['SiteID']){
            }
     }
 }

我曾经回显过SiteID的比较,像这样:

echo($data['SiteID'] .'=='.$value['SiteID']);

但是computeGHComponents()函数的$value['SiteID']没有值,显示如下:

 2==
 2==
 2==
 3==
 3==
 3==

如何从 computeGHComponents() 获取 SiteID 的值?请帮我修改我的代码。提前谢谢你。

【问题讨论】:

  • 从外观上看是可变范围问题。 php.net/manual/en/language.variables.scope.php
  • @Dagon,我如何使用它来修改我的代码?非常感谢。
  • 您必须使用print_rvar_dump 向我们展示两个数组的内容,否则我们无法猜测结构...
  • 我已经使用了 print_r 和 echo 来测试我的数组,但是我可以得到 ComputeGHComponents() 的 SiteID 的值。请帮帮我。

标签: php arrays compare array-merge


【解决方案1】:

我曾经 print_r 我的 $keyss,我发现它是 SiteID,所以我修改我的代码如下:

    public function bindGHComponentsToSites()
    {
   error_reporting (E_ALL^ E_NOTICE);  


     foreach ($this->arrays as $keys => $data) {


       foreach($this->result as $keyss => $value){

         //print_r($keyss );echo '<br/>';

         if($data['SiteID'] == $keyss){

               //statement...
            }
       }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多