我查询数据库以获取结果数组。
$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));
这些都不起作用。
有没有一种方法可以将内容转换为字符串并获取内容?还是我应该重写查询以将结果格式化为字符串?
你对类型有错误的理解,或者至少是这样:
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'];
}