代码之家  ›  专栏  ›  技术社区  ›  bbutle01

这段php代码有什么问题?

php
  •  -1
  • bbutle01  · 技术社区  · 17 年前

    object(stdClass)[12]
      public 'Affiliate_Code__c' => string 'XX-TXUJC3' (length=9)
      public 'AltEmail__c' => string 'benny@oxpublishing.com' (length=22)
      public 'City' => string 'Mobile' (length=6)
      public 'Email' => string 'benny@oxpublishing.com' (length=22)
      public 'Fax__c' => string '251-300-1234' (length=12)
      public 'FirstName' => string 'Benny' (length=5)
      public 'LastName' => string 'Butler' (length=6)
      public 'Phone' => string '251-300-3530' (length=12)
      public 'PostalCode' => string '36606' (length=5)
      public 'State' => string 'AL' (length=2)
      public 'Street' => string '851 E I-65 Service Rd' (length=21)
      public 'test1__c' => float 1
    array
      'SF_Affiliate_Code__c' => string 'XX-TXUJC3' (length=9)
      'SF_Email' => string 'benny@oxpublishing.com' (length=22)
      'SF_City' => string 'Mobile' (length=6)
      'SF_Fax__c' => string '251-300-1234' (length=12)
      'SF_FirstName' => string 'Benny' (length=5)
      'SF_LastName' => string 'Butler' (length=6)
      'SF_Phone' => string '251-300-3530' (length=12)
      'SF_PostalCode' => int 36606
      'SF_State' => string 'AL' (length=2)
      'SF_Street' => string '851 E I-65 Service Rd' (length=21)
    

    $response = $mySforceConnection->query(($query));
    
    
    
          foreach ($response->records as $SF) {
          }
    
    
            var_dump($SF);
            $SF = array_flip($SF);
                foreach ($SF as $key => $value){
    
                    $SF[$key] = 'SF_'.$value;
                    }
    
          $SF = array_flip($SF);
          echo "<pre>";
            var_dump($SF);
            echo "</pre>";
            extract($SF);
    

    知道吗? 我对任何类型的面向对象编程都是新手,我相信这与它有关。 我太笨了,我必须这么做:

    foreach ($response->records as $SF) { }
    

    谢谢!

    4 回复  |  直到 17 年前
        1
  •  1
  •   Eric Petroelje    17 年前

    当你翻转时,你最终会得到重复的键——这些值成为键,你的值不是唯一的(例如,Email和AltEmail__c都有相同的值)。

    与其先翻转再翻转,不如创建一个新数组,并将值与新键一起复制:

    $SF_new = array();
    foreach($SF as $key => $value ) {
       $SF_new['SF_' . $key] = $value;
    }
    
    // And if you want to continue using the $SF name...
    $SF = $SF_new;
    
        2
  •  1
  •   Joost    17 年前

    array_flip 将翻转值和键,正如您所说。PHP数组不能有多个同名键。尝试这样做以避免翻转:

    <?php
    $SF = array();
    foreach($response->records as $key => $value)
    {
        $SF['SF_' . $key] = $value;
    }
    

        3
  •  1
  •   Julian Aubourg    17 年前
    $SF = get_object_vars($response);
    

    将把对象转换为数组。

        4
  •  0
  •   easement    17 年前

    推荐文章