PHP面试题目

29个成员

数据键名与键值操作练习

发表于 2015-12-05 1566 次查看

目前从某系统中导出一数据,是字符串,里面包含了城市的名与城市对应的编号,现在需要把该数据转化为需要的格式,数据如下:

原数据

$cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";

字段

$field = array('city','code');

最终结果

$result = array(
    array(
        'city'=>'bejing',
        'code'=>'10001'
        ),
    array(
        'city'=>'shanhai',
        'code'=>'10002'
        ),
    array(
        'city'=>'shenzhen',
        'code'=>'10003'
        ),
    array(
        'city'=>'guangzhou',
        'code'=>'10004'
        ),
    );

请通过写一个方法来实现该功能。

15回复
  • 2楼 野人 2015-12-05

     

    然后,我不会了~~~~

  • 3楼 leoma 2015-12-05
    
    <?php
    
    echo '4545';
    
    ?>
    
    
  • 4楼 leoma 2015-12-05
     
    <\pre class="brush: js;">
    
    <\/pre>
    
    
  • 5楼 leoma 2015-12-05

    要有代码样式 点击源码,之后用一个标签包起来,目前没啥时候去直接改,后面有空再改改

  • 6楼 福娃 2015-12-05

    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    preg_match_all("/([a-z]+),([0-9]+)+/" , $cityStr , $matches);
    foreach($matches[1] as $k=>$v){
         $result[]=array('city'=>$v,'code'=>$matches[2][$k]);
    }
    print_r($result);

  • 7楼 井底之蛙 2015-12-05

  • 8楼 祝你好运 2015-12-05
    
    <?php
    //我的比较笨,但是和他们的不一样;
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    function city($arr){
      $arr=explode(",", $arr); 
      $i=0;  $j=0;
      foreach ($arr as  $k=>$v) { 
           if ($k%2==0) {
     	       $result[$i]['city']=$v;
           }else{
     	     $result[$i]['code']=$v;
     	$i++;
          }   
        }  
    var_dump($result);
    }
    city($cityStr);
    
    
  • 9楼 阿磊 2015-12-05

    仍需努力,只做到这一步,请老师指点!!!!

    <?php
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    $field=array('city','code');
    // $field=array();
    $var=explode(",",$cityStr);
    $result=array();
    foreach($var as $k=>$v){
     $i=0;
     if($k%2==0){
      $result[$i][$k]['city']=$v;

     }else{
      $result[$i+1][$k]['code']=$v;
     }
    }

     

    var_dump($result);

  • 10楼 月秋影 2015-12-05

  • 11楼 阿磊 2015-12-05

    <?php
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    $field=array('city','code');
    // $field=array();
    $var=explode(",",$cityStr);

    $result=array();

    for($i=0;$i<count($var)/2;$i++){
     $result[$i]['city']=$var[$i*2];
     $result[$i]['code']=$var[$i*2+1];

    }

     

    var_dump($result);

     

    月秋影 写的真漂亮,我又照抄写了一次。。。

  • 12楼 祝你好运 2015-12-05

    <?php

    //我的比较笨,但是和他们的不一样;
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    function city($arr){
      $arr=explode(",", $arr); 
      $i=0;  $j=0;
      foreach ($arr as  $k=>$v) { 
           if ($k%2==0) {
                $result[$i][$v]='city';
           }else{
              $result[$i][$v]='code';
         $i++;
          }   
        }  
    var_dump($result);
    }
    city($cityStr);

  • 13楼 福娃 2015-12-06

    方法1:
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    $arr=explode(",", $cityStr); 
    foreach($arr as $k=>$v){
         if(is_numeric($v)){
            $result[]=array('city'=>$arr[$k-1],'code'=>$v);
         }else{
            continue;
         }
    }
    var_dump($result);

     

     

    方法2:
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004";
    preg_match_all("/([a-z]+),([0-9]+)+/" , $cityStr , $matches);
    foreach($matches[1] as $k=>$v){
         $result[]=array('city'=>$v,'code'=>$matches[2][$k]);
    }
    var_dump($result);

  • 14楼 祝你好运 2015-12-06

    牛牛牛,牛娃

  • 15楼 leoma 2015-12-06

    大家都很厉害

  • 16楼 这个夏天真热 2015-12-08
    $cityStr = "bejing,10001,shanhai,10002,shenzhen,10003,guangzhou,10004"; $citydata=explode(",",$cityStr); $data=array(); foreach($citydata as $i=>$val ){ dump($i); if(is_numeric($val)){ $data[$i-1][code]=$val; }else{ $data[$i][city]=$val; } } dump($data);
发表回复
你还没有登录,请先登录注册

加入我们吧,一起学习QQ群516033298