PHP - 将数组返回为字符串

时间:2015-08-19 06:56:47

标签: php mysql arrays implode

我一直在寻找PHP代码问题的答案。虽然对某些用户来说听起来很容易,但我遇到了以下问题:

我设法使用PHP和MySql从特定表中检索数据。不幸的是,我无法将结果显示为字符串而不是数组。

我使用了print_r($loggedin_users).

结果:

Array ( [0] => Array ( [0] => Test ) [1] => Array ( [0] => Test1 ) )

我尝试过使用implode函数给我一个字符串。

结果:

ArrayArray

我可以知道如何获得如下结果吗?

期望的结果:

Test; Test1

提前谢谢。

4 个答案:

答案 0 :(得分:5)

问题是,你有一个二维数组。所以你试图破坏两个阵列,这是无法工作的。所以你首先必须破坏subArrays,然后再次破坏它,例如

echo implode(";", array_map("implode", $loggedin_users));

旁注:

如果你打开error reporting,你会收到通知,说:

  

注意:数组到字符串转换

答案 1 :(得分:2)

您可以使用unutbu

`public class Test extends JDialog{
    public static void main(String... args) throws Exception{
         SwingUtilities.invokeAndWait(()->{new Test();});
    }

    private JToggleButton pinToScreenButton;
    private JButton cloneFrameButton;

    public Test(){
        this.setSize(200,200);
        this.setLayout(new FlowLayout());
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        pinToScreenButton = new JToggleButton("pin to screen");
        pinToScreenButton.addItemListener(e->{
        pinToScreenButtonAction(e);
        });
        add(pinToScreenButton);

        cloneFrameButton = new JButton("clone");
        cloneFrameButton.addActionListener(e->{
            cloneFrameButtonAction(this);}
        );
        add(cloneFrameButton);
        setVisible(true);
    }

    public void pinToScreenButtonAction(ItemEvent evt){
        if(evt.getStateChange() == ItemEvent.SELECTED){
            this.setAlwaysOnTop(true);
        }else{
            this.setAlwaysOnTop(false);
        }
    }

    public void cloneFrameButtonAction(JDialog invoker){
        JDialog newDialog = new Test();
        newDialog.setLocation(invoker.getX()+10, invoker.getY()+15);
    }
}

答案 2 :(得分:0)

使用foreach他们使用implode因为你有多维数组。

foreach($loggedin_users as $key => $val){
  $string = implode(', ', $val);
}

答案 3 :(得分:0)

你必须在这里创建一个递归函数。所以,无论它是什么数组,无论嵌套的程度如何。你将永远得到理想的结果。

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