是否可以返回逗号分隔的数组? (不是单个数组)

时间:2015-03-18 11:52:56

标签: php arrays

我正在设置这样的功能:

function return_my_arrays() {
    $the_array = array(
        array(
            'foo' => '1',
            'bar' => '12'
        ),
        array(
            'foo' => '41',
            'bar' => '512'
        ),
        array(
            'foo' => 'b1',
            'bar' => 'a'
        ),
    );

    return implode( ',', $the_array );
}

我需要返回与此函数分开的第二级数组逗号。但是这段代码不起作用。

这些数组将用于另一个多维数组,并将进行扩展。直接返回$ the_array对我不起作用。

4 个答案:

答案 0 :(得分:0)

我希望我可以帮助你,也许你需要的是:

function return_my_arrays() {
            $the_array = array(
                array(
                    'foo' => '1',
                    'bar' => '12'
                ),
                array(
                    'foo' => '41',
                    'bar' => '512'
                ),
                array(
                    'foo' => 'b1',
                    'bar' => 'a'
                ),
            );

        $commaSeparated = '';
        foreach($the_array as $level2Array)
        {
           $commaSeparated .= $level2Array.',';
        }
        return $commaSeparated; 
    }

答案 1 :(得分:0)

你需要循环你的数组来获取内部数组 - 所以你可以操纵它。

这样的事情应该足够了;

function return_my_arrays() {
    $the_array = array(
        array(
            'foo' => '1',
            'bar' => '12'
        ),
        array(
            'foo' => '41',
            'bar' => '512'
        ),
        array(
            'foo' => 'b1',
            'bar' => 'a'
        ),
    );
  $return = array();
  foreach($the_array as $inner_array) {
     $return[] = implode(",", $inner_array);
  }
  return implode(",", $return);
}

https://eval.in/301546

答案 2 :(得分:0)

array_map允许您在没有循环的情况下执行此操作

return implode(',', array_map(function ($entry) {
  return $entry['foo'].",".$entry['bar'];
}, $the_array)); // 1,12,41,512,b1,a

https://eval.in/301662

答案 3 :(得分:-1)

我认为这与php的工作方式不可能。但我找到了一个肮脏的解决方案。

我打电话给' n'来自函数的数组如下:

array(
    return_my_arrays()[0],
    return_my_arrays()[1],
)

我不知道这是不是一个好习惯,但这确实是我真正需要的。