PHP将数组元素转换为字符串打印"数组"

时间:2015-01-27 15:36:52

标签: php

我查询数据库以获得结果数组。

$usersArray = $db->getAllUsers();  // db-Query

如果我打印出数组的var_dump,其内容将以其他数组的形式构建:

array(9) { [0]=> **array**(1) { ["column"]=> string(20) "..." } [1]=> **array**(1) { ["column"] (remaining 8 are the same).

现在我需要将这些值(到目前为止是正确的)作为字符串输出,以便:

array(9) { [0]=> **string**(1) { ["column"]=> string(20) "..." } [1]=> **string**(1) { ["column"] ....

这里和其他地方有几个答案,例如

-array_map:在这里我实际上可以将内容转换为字符串,但它打印"数组"而是价值。然后尝试通过

获取内容
$users = array_map('strval',implode( $usersArray));
$users = array_map('strval', print_r($usersArray));

这些都没有奏效。

是否有一种方法可以将内容转换为字符串获取内容?或者我应该重写查询以将结果格式化为字符串?

1 个答案:

答案 0 :(得分:1)

你对类型的理解是错误的,至少是这个:

array(9) { [0]=> **string**(1) { ["column"]=> string(20) "..." } [1]=> **string**(1) { ["column"] ....

没有任何意义。您相信您希望元素是字符串类型,但包含实际上不起作用的数组数据。 你真正想要的是一个不同的数组结构,但你正朝着错误的方向前进。

您基本上有两个选择:

  1. 以一种在实际需要的结构中返回数据的方式修改getAllUsers()方法。

  2. 收到数据后修改数据。显然没有内置函数convert_data_to_how_i_want_them() - 因此需要对数组有基本的了解。 基本上,您创建一个新数组并将所需的值复制到您需要的位置。

  3. 在这种情况下,像这样的东西应该可以解决问题:

    $out = array();
    foreach($in as => $value) {
        $out[] = $value['column'];
    }