我查询数据库以获得结果数组。
$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));
这些都没有奏效。
是否有一种方法可以将内容转换为字符串和获取内容?或者我应该重写查询以将结果格式化为字符串?
答案 0 :(得分:1)
你对类型的理解是错误的,至少是这个:
array(9) { [0]=> **string**(1) { ["column"]=> string(20) "..." } [1]=> **string**(1) { ["column"] ....
没有任何意义。您相信您希望元素是字符串类型,但包含实际上不起作用的数组数据。 你真正想要的是一个不同的数组结构,但你正朝着错误的方向前进。
您基本上有两个选择:
以一种在实际需要的结构中返回数据的方式修改getAllUsers()方法。
收到数据后修改数据。显然没有内置函数convert_data_to_how_i_want_them() - 因此需要对数组有基本的了解。 基本上,您创建一个新数组并将所需的值复制到您需要的位置。
在这种情况下,像这样的东西应该可以解决问题:
$out = array();
foreach($in as => $value) {
$out[] = $value['column'];
}