【问题标题】:Codeigniter XML-RPC Response Multi Dimensional Array ApproachCodeigniter XML-RPC 响应多维数组方法
【发布时间】:2015-04-01 11:14:41
【问题描述】:

我需要创建一个 XML-RPC 服务器来获取带有相应 ID 的城市。由于不必要的重复条目,我所做的回应对我来说看起来很奇怪,但我找不到更好的方法。

 Array
    (
        [cityID] => Array
            (
                [0] => 34
                [1] => 35
                [2] => 06
            )

        [cityName] => Array
            (
                [0] => Istanbul
                [1] => Izmir
                [2] => Ankara
            )

    )

我实现了上述响应。有了这个实现:

$response = array(
                        array(

                                'cityID' => array(array('34', '35', '06'), 'array'),
                                'cityName' => array(array('Istanbul', 'Izmir', 'Ankara'), 'array')
                        ),

                        'struct'
                );

问题是我想采取这样的回应:

Array
       (
         [cities] => Array
             (
                  ['34'] => 'Istanbul'
                  ['35'] => 'Izmir'
                  ['06'] => 'Ankara'
             )
       )

所以我尝试像这样实现它:

$response = array(
                        array(

                                'cities' => array(array('34'=>'Istanbul', '35'=>'Izmir', '06'=>'Ankara'), 'array')
                        ),

                        'struct'
                );

但是这个实现失败了。我究竟做错了什么 ?

谢谢

【问题讨论】:

    标签: php arrays xml codeigniter xml-rpc


    【解决方案1】:

    你有如下数组

    $response =  array ( 'cityID' => array (
                                              0 => 34,
                                              1 => 35,
                                              2 => 06
                                            ), 
    
                        'cityName' => array(  
                                              0 => 'Istanbul',
                                              1 => 'Izmir',
                                              2 => 'Ankara'
                                            )
                    );
    
        $newarray = array();
    
        foreach($response['cityID'] as $key => $cityid){
            $newarray['cities'][$cityid] = $response['cityName'][$key];
        }
    
        print_r($newarray);
    

    您将获得预期的数组。

    Array
    (
        [cities] => Array
            (
                [34] => Istanbul
                [35] => Izmir
                [6] => Ankara
            )
    )
    

    【讨论】:

    • 谢谢,但问题是:如何在响应数组上实现如下所示的数组。我知道我可以创建一个 foreach 来创建一个新数组,但这不能用作响应。
    【解决方案2】:

    这就是我在 Code Igniter 3 中的做法

    $array =  array ( 'cityID' => array (
                                          0 => 34,
                                          1 => 35,
                                          2 => 06
                                        ), 
    
                    'cityName' => array(  
                                          0 => 'Istanbul',
                                          1 => 'Izmir',
                                          2 => 'Ankara'
                                        )
                );
    
    foreach($array['cityID'] as $key => $cityid){
         $response[] = array(array(
               $cityid => array($array['cityName'][$key],'string'),
        ),'struct');
    }
    
    return $this->xmlrpc->send_response(array($response,'array'));
    

    【讨论】:

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