2012-01-18 54 views
0

正确地格式化输出数组我需要产生的格式如下的数组:阵列来自2种不同的源和被馈送到功能如何在PHP

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

的数据来制作。

该函数调用是lookupUserData($a, array(“name”, “image”)) //这已设置好,以便可以简单地通过在数组中添加字段名称来调用用户表中的其他详细信息。 $一个被格式化为$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)) 
) 

我知道我有错过了简单的东西,但似乎无法得到这个权利!

回答

1

事情是这样的:

 

$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; 
} 

 
+0

谢谢你,这完美地工作。我知道这是一件简单的事情,却看不到它(想想我需要在阵列基础知识中进行复习!) – AndyV 2012-01-18 23:37:18