【问题标题】:How to merge array elements with comma separated value without using explode function如何在不使用explode函数的情况下将数组元素与逗号分隔值合并
【发布时间】:2019-06-25 13:30:20
【问题描述】:

我想将数组元素合并为逗号分隔值。 这是一个数组

array:12 [
    0 => array:2 [
        "name" => "A1"
        "project" => array:1 [
            0 => "New Project"
        ]
    ]
    1 => array:2 [
        "name" => "A2"
        "project" => array:2 [
            0 => "New Project"
            2 => "Project"
        ]
    ]
]

我期望的数组应该是这样的

array:12 [
    0 => array:2 [
        "name" => "A1"
        "project" => array:1 [
            0 => "New Project"
        ]
    ]
    1 => array:2 [
        "name" => "A2"
        "project" => array:2 [
            0 => "New Project","Project"
        ]
    ]
]

需要将新项目和项目合并到数组2中的一个位置

【问题讨论】:

  • 有了这个关联数组,我认为你能得到的最接近的方法是将两个项目封装为逗号分隔字符串,如“新项目,项目” - 这听起来好吗?
  • “我想将新项目和项目合并到数组 2 中的一个位置” - 这不是您的示例所显示的。 0 => "New Project","Project" 实际上是两个数组项,相当于0 => "New Project", 1 => "Project"。您可能是指0 => "New Project, Project"(在相同的引号内,使其成为一个值)。如果这就是你的意思,你应该编辑你的问题以反映这一点。
  • 为什么不使用 implode()?尽管您必须循环数组并将其应用于子数组,但它几乎可以满足您的需求,但大多数其他解决方案也是如此)
  • 你已经显示了你想要的输出,但没有显示你用来到达那里的代码。请提供minimal reproducible example,以便我们帮助您更正您的代码。

标签: php arrays laravel multidimensional-array


【解决方案1】:

你可以使用array_walk的这个sn-p,

array_walk($arr, function(&$val){
    $val['project'] = implode(",", $val['project']);
});

Demo.

【讨论】:

    【解决方案2】:

    使用implode

    $arr = array:12 [
         0 => array:2 [
            "name" => "A1"
          "project" => array:1 [
                0 => "New Project"
              ]
            ]  
           1 => array:2 [
             "name" => "A2"
              "project" => array:2 [
                   0 => "New Project"
                   2 => "Project"
               ]
          ]
    
    
    foreach ($arr as &$value) {
       implode(', ', $value['project']);
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多