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


Is it possible return comma seperated arrays? (not a single array)

我正在设置这样一个函数:

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对我不起作用。

我希望我能帮你,也许你需要的是:

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; 
    }

您需要循环使用您的数组来获取内部数组,这样您就可以对其进行操作。

这样的东西应该足够了;

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

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

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

我从函数中调用'n'数组,如下所示:

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

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