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

组合多个数组并转换为字符串

  •  0
  • daugaard47  · 技术社区  · 3 年前

    • 名字

    两者都是数组。

    我想把数组和covert组合成一个可读的 字符串。我怎样才能做到这一点?

    我的立场是:

            $firstName = $this->state['first_name'];
            $lastName = $this->state['last_name'];
    
            $firstLastName = array_combine($firstName , $lastName);
    
    /* $firstLastName outputs:
       array:2 [▼
         "John" => "Doe"
         "Jane" => "Doe"
       ]
     */
    
    
            $string = implode(', ', $firstLastName);
    
            dd($string);
    
    // $string outputs:
    //"Doe, Doe" 
    //Only getting the last names
    

    John Doe, Jane Doe ?

    2 回复  |  直到 3 年前
        1
  •  1
  •   splash58    3 年前

    使用数组映射组合数组

        $firstName = $this->state['first_name'];
        $lastName = $this->state['last_name'];
        $firstLastName = array_map(function($f, $l) { return $f.' '.$l;}, $firstName, $lastName);
    
        2
  •  1
  •   Alberto    3 年前

    像这样:

    $res = [];
    for($firstLastName as $k => $v){
       $res[] = "{$k} {$v}";
    }
    $string = implode(', ', $res);
    

    或者之前没有加入他们:

    $firstLastName = array_map(
        function($name, $last){ 
             return "{$name} {$last}";
        },
        $this->state['first_name'],
        $this->state['last_name']
    );