【问题标题】:php join two elements of arrayphp连接数组的两个元素
【发布时间】:2015-06-12 21:39:41
【问题描述】:

我有这个数组

$MyArray[0]=Array("id"=>1,"name"=>prophet,"family"=>muhammad);
$MyArray[1]=Array("id"=>1,"name"=>imam,"family"=>ali);
$MyArray[2]=Array("id"=>1,"name"=>imam,"family"=>hossein);

我只想将namefamily 合并到fullName

我想要这样

$MyArray[0]=Array("id"=>1,"name"=>prophet,"family"=>muhammad,"fullName"=>"prophet muhammad");
$MyArray[1]=Array("id"=>1,"name"=>imam,"family"=>ali,"fullName"=>"imam ali");
$MyArray[2]=Array("id"=>1,"name"=>imam,"family"=>hossein,"fullName"=>"imam hossein");

我可以使用这段代码

$count=0;
foreach($MyArray as $R)
{            
    $result[$count++]=array("name"=>$R["name"],"family"=>$R["family"],"fullName"=>$R["name"]." ".$R["family"]);
}
var_dump($result);

Online Demo

有更好的方法吗?

【问题讨论】:

    标签: php arrays string algorithm multidimensional-array


    【解决方案1】:

    只需在您当前的数组结构中分配一个新的密钥对值。一个简单的 foreach 就足够了:

    $MyArray[0]=Array("id"=>1,"name"=>"prophet","family"=>"muhammad");
    $MyArray[1]=Array("id"=>1,"name"=>"imam","family"=>"ali");
    $MyArray[2]=Array("id"=>1,"name"=>"imam","family"=>"hossein");
    
    foreach($MyArray as &$arr) {
                      // ^ reference
        $arr['fullName'] = "{$arr['name']} {$arr['family']}";
        //   ^ new key       ^ new value assignment
    }
    

    Sample Output

    【讨论】:

      【解决方案2】:

      您可以像这样在代码中使用array_map()

      <?php
      
      $MyArray[0]=Array("id"=>1,"name"=> "prophet", "family"=> "muhammad");
      $MyArray[1]=Array("id"=>1,"name"=> "imam", "family"=> "ali");
      $MyArray[2]=Array("id"=>1,"name"=> "imam", "family"=> "hossein");
      
      $array = array_map(function($n) {$n['fullName'] = $n['name'] . ' ' . $n['family']; return $n;}, $MyArray);
      
      print_r($array);
      

      输出:

      Array
      (
          [0] => Array
              (
                  [id] => 1
                  [name] => prophet
                  [family] => muhammad
                  [fullName] => prophet muhammad
              )
      
          [1] => Array
              (
                  [id] => 1
                  [name] => imam
                  [family] => ali
                  [fullName] => imam ali
              )
      
          [2] => Array
              (
                  [id] => 1
                  [name] => imam
                  [family] => hossein
                  [fullName] => imam hossein
              )
      
      )
      

      阅读更多:

      http://php.net/array_map

      【讨论】:

        【解决方案3】:
        $MyArray[0]=Array("id"=>1,"name"=>prophet,"family"=>muhammad);
        $MyArray[1]=Array("id"=>1,"name"=>imam,"family"=>ali);
        $MyArray[2]=Array("id"=>1,"name"=>imam,"family"=>hossein);
        $count = count($MyArray);
        for ($i = 0; $i < $count; $i++) {
            $MyArray[$i]['fullName'] = $MyArray[$i]['name'] . ' ' . $MyArray[$i]['family'];
        }
        print_r($MyArray);
        

        【讨论】:

          【解决方案4】:

          您可以通过使用 foreach 循环来做到这一点。这是一个例子。

          $MyArray[0]=Array("id"=>1,"name"=>prophet,"family"=>muhammad);
          $MyArray[1]=Array("id"=>1,"name"=>imam,"family"=>ali);
          $MyArray[2]=Array("id"=>1,"name"=>imam,"family"=>hossein);
          
          foreach($MyArray as $key=>$myarray){
               $MyArray[$key]["fullName"] = $myarray["name"]." ".$myarray["family"];
          }
          

          【讨论】:

            猜你喜欢
            • 2022-11-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-09-28
            • 1970-01-01
            • 2013-08-05
            • 1970-01-01
            相关资源
            最近更新 更多