内爆一个多维数组

Implode a mult-dimensional array

我正在尝试内爆一个多维数组,但我遗漏了一些东西。

这是数组:

Array
(
    [0] => Array
        (
            [0] => Brand 1
        )
    [1] => Array
        (
            [0] => Brand 2
        )
)

所以经过一些 google-ing 我找到了几个解决方案,但它们都给了我不同的错误。

我读到 array_map() 应该可以,但我不知道第二个参数应该是什么。

我收到以下错误:

Warning: array_map() expects at least 2 parameters, 1 given in

这是我的代码:

$imploded = implode("','",array_map($brand_array));

$brand_array 是由 in_array 函数

构造的新创建的数组

目标是获得逗号分隔的字符串,例如:

brand1, brand2

array_map() 希望您将回调函数添加为第一个参数,将数组添加为第二个参数。

如果您查看函数的签名,您也可以看到这一点:

array array_map ( callable $callback , array $array1 [, array $... ] )

参数:

  • 回调:

    • 每个数组中每个元素的回调函数运行。
  • 数组:

    • 一个数组通过回调函数运行。

你只有 array_map 中的数组你需要这样的东西:

array_map('functionname', $array);

嗯,看来您对如何使用 array_map() 有点困惑。但这应该适合你:

echo implode(",", array_map(function($v){
    return implode(",", $v);
}, $arr));

举个例子:

$arr = [
        [1,2],
        [1,2],
    ];

使用 array_map() 遍历每个 innerArray 并用逗号 implode() 它,因此最终得到以下数组:

Array ( [0] => 1,2 [1] => 1,2 )

现在你有一个一维数组,你必须再次内爆 array_map() 的 return 值,然后用逗号再次内爆它,你将得到:

1,2,1,2

试试下面的代码

$input = array(
  array(
    'brand 1'
  ),
  array(
    'brand 2'
  )
);


echo implode(', ', array_map(function ($entry) {
  return $entry[0];
}, $input));