Php 从sql查询结果格式化数组

Php 从sql查询结果格式化数组,php,mysql,arrays,Php,Mysql,Arrays,我有以下疑问 $sql = "SELECT nomInteretUser from userInteret where idUser='$id_user' "; $result = $conn->query(sprintf($sql)); 我想生成一个具有以下结构的数组:array('User1','User2') 我试过这个: if ($result->num_rows != 0) { $rows=array(); while($r=mysqli_fetch_a

我有以下疑问

$sql = "SELECT nomInteretUser from userInteret where idUser='$id_user' ";
$result = $conn->query(sprintf($sql));
我想生成一个具有以下结构的数组:
array('User1','User2')

我试过这个:

if ($result->num_rows != 0) {
    $rows=array(); 
    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r;
    } 
}
但它给出了以下结果:

{
   array(1) {
       ["nomInteretUser"]=> "foot"
   }
   array(1) {
       ["nomInteretUser"]=> "cyclisme"
   }
}

只需将代码更新为:

if($result)
{           
   if ($result->num_rows != 0) {

      $rows=array(); 

      while($r=mysqli_fetch_assoc($result))
      { 
         $rows[]=$r["nomInteretUser"];
      } 
   }
 }

您可以通过两种方式执行此操作:

  • 请像这样更新您当前的代码

    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[]=$r['nomInteretUser'];  //Update here
    }
    
  • 如果不想更新当前代码,请修改代码,然后使用(
    =PHP5.5
    必需)

    $rows=array_column($rows,'nointeretuser')


  • 希望有帮助

    请将您的代码替换为

    if ($result->num_rows != 0) {
    $rows=array();
    $i = 0;
    while($r=mysqli_fetch_assoc($result))
    { 
        $rows[$i]=$r;
        $i++;
    } 
    }
    

    使用
    $rows[]=$r['nointeretuser']在您的代码中,您会得到正确的结果。:)

    您是否尝试过
    $rows[]=$r[“nointeretuser”]
    if ($result->num_rows != 0) {
        $rows=array(); 
        while($r=mysqli_fetch_assoc($result))
        { 
            $rows[]=$r['nomInteretUser'];
        } 
    }