【问题标题】:Php build array from comma separated array valuesPHP 从逗号分隔的数组值构建数组
【发布时间】:2017-03-09 05:51:24
【问题描述】:

我有一个数组,其中一些数组值包含多个用逗号分隔的值,如下所示。

$a = 数组( '0' => 't1,t2', '1' => 't3', '2' => 't4,t5' );

我需要以下格式的输出。

大批 ( [0] => t1 [1] => t2 [2] => t3 [3] => t4 [4] => t5 )

这是如何尝试并获得结果的。有没有其他不循环两次的替代方法。

$arr_output = 数组(); foreach($a 作为 $val) { $temp = explode(',', $val); foreach($temp as $v) { $arr_output[] = $v; } }

谢谢。

【问题讨论】:

  • 发布您的代码以及您尝试了什么?
  • @orangetime 此处无需使用循环,您可以使用预定义的 php 数组函数获得所需的输出。在下面检查我的答案。
  • @prudhvi259,非常感谢。您的解决方案非常简单。

标签: php arrays explode


【解决方案1】:

首先将您的旧数组转换为字符串,例如,
$old_array = array ( "t1,t2", "t3", "t4,t5" );

$string = implode(",", $old_array);
现在
echo $string;
现在使用它给出一个带有逗号分隔符的字符串,您将获得所需的数组

$new_array = explode(",", $string);

如果你打印这个,你会得到

Array(
[0] => t1
[1] => t2
[2] => t3
[3] => t4
[4] => t5)

【讨论】:

    【解决方案2】:
    $array = Array (
            "t1,t2",
            "t3",
            "t4,t5"
        );
    
    $splitted = array_map (function ($a) {return explode (",", $a);}, $array);
    $arr = array_reduce($splitted, function ($a, $b) {
         return array_merge($a, (array) $b);
    }, []);    
    
    print_r ($arr);
    

    首先,你用逗号分割每个字符串。你得到一个数组数组。 要合并它们,您可以调用合并函数,例如示例中使用 array_reduce 的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多