如何在php中正确格式化输出数组


How to format output array correctly in php

我需要生成一个格式化如下的数组:

Array(  
Array([100000116287110]=>  
Array([name] => Bryce [image] => abcd.png))  
Array([100003019827186]=>  
Array([name] => Ross [image] => defg.png))  
)  

生成数组的数据来自两个不同的源,并提供给一个函数。

函数调用是lookupUserData($a, array(“name”, “image”))//这已经设置好了,因此可以通过在数组中添加字段名来调用用户表中的其他详细信息。$a格式化为$a = “100000116287110,100003019827186”

我目前用于该功能的代码如下:

function lookupUserData($f,$u)
{
$f = explode(",",$f); //user id from string – converts string to array ([0] =>100000116287110 [1] =>100003019827186)
$u = implode(",",$u); //fields to extract – converts array(“name”,”image”) to name,image
$r=array(); //define results array`
$nr = count($f); //count number of ids to process
for($i=0; $i<$nr; $i++) { //process each id in $f array
$r[]=$f[$i];
$res = mysql_query("SELECT {$u} FROM users where id ={$f[$i]}"); //query user table
$val= mysql_fetch_assoc($res); //return requested fields ($u) from user table
array_push($r, $val); //add values to array $r
}
print_r ($r); //check array output – testing only
return $r; //return array for processing
}

然而,这会返回如下结果:

Array(  
Array([0]=>[100000116287110]  
Array([name] => Bryce [image] => abcd.png))  
Array([1]=>[100003019827186]  
Array([name] => Ross [image] => defg.png))  
)

我知道我错过了一些简单的事情,但似乎无法做到这一点!

类似这样的东西:


$r= array();
for($i=0; $i<$nr; $i++) { //process each id in $f array
 $res = mysql_query("SELECT {$u} FROM users where id ={$f[$i]}"); //query user table
 $val= mysql_fetch_assoc($res); //return requested fields ($u) from user table
 $r[$f[$i]] = $val;
}