内爆一个多维数组

时间:2015-03-25 10:23:54

标签: php arrays wordpress implode

我试图破坏一个多维数组,但我错过了一些东西。

这是数组:

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

因此,经过一些谷歌搜索,我找到了几个解决方案,但他们都给了我不同的错误。

我读到array_map()应该有用,但我无法弄清楚第二个参数应该是什么。

我收到以下错误:

  

警告:array_map()需要至少2个参数,1在

中给出

这是我的代码:

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

$brand_array是一个由in_array函数

构造的新创建的数组

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

brand1, brand2

3 个答案:

答案 0 :(得分:2)

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

如果你看一下这个函数的签名,你也可以看到这个:

  

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

<强>参数:

  • 回调:

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

    • 要通过回调函数运行的数组。

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

array_map('functionname', $array);

答案 1 :(得分:2)

好像你对如何使用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()的返回值,然后用逗号再次破坏它,你最终会得到:

1,2,1,2

答案 2 :(得分:0)

尝试以下代码

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


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