【问题标题】:String array count and merge to one字符串数组计数并合并为一
【发布时间】:2020-05-21 10:23:13
【问题描述】:

我在网上搜索过,但不知道正确的关键字来找到解决方案。

示例代码:

$arr = array(1, 2, 3, 4);

$json_components = array();
$count = 0;

foreach ($arr as &$value) { $count++;
  $array_string = array("type" => "list", 'name' => 'example '.$count.'');
}

$json_components = array_merge($json_components, $array_string);

print_r($json_components);
die();

在 foreach 中有一个 $array_string,它每次都可以具有相同的名称/键/值(差异很小)。 我想要成功的是将它合并到一个数组中。

我试过了:$array_string.count = array("type" => "list", 'name' => 'example '.$count.'');但这不起作用。

我正在寻找的最终结果:

$json_components = array(
 array("type" => "list", 'name' => 'example 1'),
 array("type" => "list", 'name' => 'example 2'),
 array("type" => "list", 'name' => 'example 3'),
 array("type" => "list", 'name' => 'example 4')
);

print_r($json_components);
die();

【问题讨论】:

    标签: php arrays string


    【解决方案1】:

    像这样简单地添加到数组中,然后你不需要合并数组

    $arr = array(1, 2, 3, 4);
    
    $json_components = array();
    
    foreach ($arr as $value) { 
        $json_components[] = [ "type" => "list", 
                               'name' => "example $value"
                          ];
    }
    
    print_r($json_components);
    

    结果

    Array
    (
        [0] => Array
            (
                [type] => list
                [name] => example 1
            )
        [1] => Array
            (
                [type] => list
                [name] => example 2
            )
        [2] => Array
            (
                [type] => list
                [name] => example 3
            )
        [3] => Array
            (
                [type] => list
                [name] => example 4
            )
    )
    

    【讨论】:

      【解决方案2】:

      array_merge() 不需要使用循环,只需使用array_map() 函数即可:

      <?php
      $arr = array(1, 2, 3, 4);
      
      $json_components = array();
      
      $new_array = array_map(function($val) {
          return array("type" => "list", 'name' => 'example '. $val);
      }, $arr);
      
      print_r($new_array);
      die();
      

      这是一个有效的 sn-p:https://3v4l.org/BvaVF

      【讨论】:

        猜你喜欢
        • 2018-04-27
        • 2012-12-24
        • 2011-06-05
        • 2015-02-05
        • 1970-01-01
        • 2012-11-29
        • 2015-12-13
        • 1970-01-01
        相关资源
        最近更新 更多