2015-07-21 48 views
0

我想有这两个标签的一个数组,所以我可以使用两种标签从索引中PHP破灭两个标记成一个阵列

$query = "SELECT username,imgDefault from users" 
$result = $sql->query($query); 
$rows = array(); 
while($row = $result->fetch_assoc()) {    
      $rows[]=$row; 
     } 
     $result->close(); 
     $sql->close(); 
$str = implode(',', array_map(function($el){ return $el['username']; }, $rows)); 
$str1 = implode(',', array_map(function($el){ return $el['imgDefault']; }, $rows)); 

所需的输出数组

username:"d" imgDefault: "a", username:"b" imgDefault: "q", etc.... 
通过我的客户引用它

我打开任何其他输出,可以帮助我确定索引列值

+3

不要删除(http://stackoverflow.com/questions/31529216/php-implode-multiple-tags-in-same-array)和转发 - 它非常粗鲁 – 2015-07-21 02:27:05

+0

即时消息不知道你在问什么。你能展示你想要达到的“最终结果”吗?也就是说,显示你试图获得的数组是如何构造的 – chiliNUT

+0

你的问题是什么? – alariva

回答

0

如果我正确理解你想要做的是有可能得到一个“用户名”的基础上在“imgDefault”上或根据“用户名”获取“imgDefault”。

你应该先得到一个关联数组,其中的关键是用户名,和值是imgDefault: $查询=“选择用户名,imgDefault来自用户的” $结果= $ SQL->查询($查询) ;

$associativeArray = array(); 
while($row = $result->fetch_assoc()) {    
    $currUsername = $row["username"]; 
    $currImgDefault = $row["imgDefault"]; 
    $associativeArray[$currUsername]= $currImgDefault; 
} 
$result->close(); 
$sql->close(); 
// $array will look like array("d" => "a", "b" => "q", ...); 

然后你可以看一下基于“用户名”一“imgDefault”使用:

if (array_key_exists($theUsername, $associativeArray)) 
{ 
    $theImgDefault = $associativeArray[$theUsername]; 
} 

而且你可以看一下基于“imgDefault”一个“用户名”使用:

$theUsername = array_search($theImgDefault,$associativeArray);