2011-08-03 56 views
0
while($info5 = mysql_fetch_array($result)){ 
     $namelist[] = $info5["name"]; 
     $idlist[] = $info5["id"]  
    } 

我想,其具有阵列IDLIST的条目,因为它的索引和阵列名称列表的条目,因为它是值的阵列的两个数组元素的数组索引和值。创建并从在while循环

有没有简短的方法来做到这一点?

回答

2

像这样,如果我了解您的请求。使用$info['id']为阵列关键累积阵列$namelist(或任何你决定将它命名)

while($info5 = mysql_fetch_array($result)){ 
    $namelist[$info['id']] = $info5["name"]; 
} 
0
$result = array(); 
while($info5 = mysql_fetch_array($result)) 
{ 
    $id = $info5['id']; 
    $name = $info5['name']; 

    $result[$id] = $name; 
} 

这应该给输出数组$result你想,如果我理解正确。

1

我不知道我理解你的问题,但可能是这样的事情应该没问题。

while($info5 = mysql_fetch_array($result)){ 
    $values[$info5['id']] = $info5; 
} 
0

您可以使用array_combine只要数组中有相同数量的值:

$result = false; 
if (count($idlist) == count($namelist)) 
    $result = array_combine($idlist, $namelist); 

退房的文档:http://www.php.net/manual/en/function.array-combine.php

但是,我也想知道为什么你不只是做while循环:

$values = array(); 
$namelist = array(); 
$idlist = array(); 
while($info5 = mysql_fetch_array($result)){ 
    $namelist[] = $info5["name"]; 
    $idlist[] = $info5["id"]  
    // this is the combined array you want? 
    $values[$info5["id"]] = $info5["name"]; 
}