PHP - Return 数组作为字符串
PHP - Return Array As String
我一直在寻找 PHP 代码问题的答案。虽然对某些用户来说这听起来很容易,但我遇到了以下问题:
我设法使用 PHP 和 MySql 从特定的 table 检索数据。不幸的是,我无法将结果显示为字符串而不是数组。
我用了print_r($loggedin_users).
结果:
Array ( [0] => Array ( [0] => Test ) [1] => Array ( [0] => Test1 ) )
我试过使用 implode 函数 return 给我一个字符串。
结果:
ArrayArray
我可以知道如何得到如下结果吗?
想要的结果:
Test; Test1
提前致谢。
问题是,您有一个二维数组。所以你试图内爆两个阵列,这是行不通的。所以你首先必须内爆子数组然后再内爆它,例如
echo implode(";", array_map("implode", $loggedin_users));
旁注:
如果您打开 error reporting
,您会收到一条通知,内容为:
Notice: Array to string conversion
您可以使用 array_reduce()
:
echo array_reduce($array, function($carry, $item) {
if(is_null($carry)) {
return $item[0];
} else {
return $carry . "; " . $item[0];
}
});
使用 foreach
他们使用 implode
因为你有多维数组。
foreach($loggedin_users as $key => $val){
$string = implode(', ', $val);
}
你必须在这里创建一个递归函数。因此,无论它是什么数组,也无论嵌套到什么程度。你总能得到想要的结果。
$a = array(
0 => array(0 => 'Test'),
1 => array(0 => 'Test1')
);
function implodeCustom($array){
$string = "";
foreach($array as $key => $value)
if(is_array($value)){
$string .= implodeCustom($value);
} else{
$string .= $value.";";
}
return $string;
}
echo rtrim(implodeCustom($a),';');
我一直在寻找 PHP 代码问题的答案。虽然对某些用户来说这听起来很容易,但我遇到了以下问题:
我设法使用 PHP 和 MySql 从特定的 table 检索数据。不幸的是,我无法将结果显示为字符串而不是数组。
我用了print_r($loggedin_users).
结果:
Array ( [0] => Array ( [0] => Test ) [1] => Array ( [0] => Test1 ) )
我试过使用 implode 函数 return 给我一个字符串。
结果:
ArrayArray
我可以知道如何得到如下结果吗?
想要的结果:
Test; Test1
提前致谢。
问题是,您有一个二维数组。所以你试图内爆两个阵列,这是行不通的。所以你首先必须内爆子数组然后再内爆它,例如
echo implode(";", array_map("implode", $loggedin_users));
旁注:
如果您打开 error reporting
,您会收到一条通知,内容为:
Notice: Array to string conversion
您可以使用 array_reduce()
:
echo array_reduce($array, function($carry, $item) {
if(is_null($carry)) {
return $item[0];
} else {
return $carry . "; " . $item[0];
}
});
使用 foreach
他们使用 implode
因为你有多维数组。
foreach($loggedin_users as $key => $val){
$string = implode(', ', $val);
}
你必须在这里创建一个递归函数。因此,无论它是什么数组,也无论嵌套到什么程度。你总能得到想要的结果。
$a = array(
0 => array(0 => 'Test'),
1 => array(0 => 'Test1')
);
function implodeCustom($array){
$string = "";
foreach($array as $key => $value)
if(is_array($value)){
$string .= implodeCustom($value);
} else{
$string .= $value.";";
}
return $string;
}
echo rtrim(implodeCustom($a),';');