我正在设置这样一个函数:
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],
)
我不知道这是否是一个好的练习,但这确实是我真正需要的。