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),';');