【问题标题】:php resultset to arrayphp结果集到数组
【发布时间】:2016-07-21 01:00:41
【问题描述】:

我知道它已经被问过很多次了,但相信我,我为我的确切要求进行了研究,但找不到正确的方法。

我需要来自 mysql 的 php 结果集中的简单数组。

这是我的代码

$sql_qry_group = "SELECT country_code, Count(users) as userscnt FROM `users` GROUP by country_code ";
$qry_users_group = mysqli_query($db_conn, $sql_qry_group); 
    while($users_country = mysqli_fetch_assoc($qry_users_group)) {
      $countries[] = $nodes_country_set;
     }

当我为 $countries[] 执行 print_r 时,我得到如下输出。

[1] => Array
        (
            [country_code] => US
            [userscnt] => 727
        )

    [2] => Array
        (
            [country_code] => UY
            [userscnt] => 53
        )

    [3] => Array
        (
            [country_code] => VC
            [userscnt] => 4
        )

我需要的是一个这样的数组

$countries = array(
            "US" => 727,
            "UY" => 53,
            "VC" => 4,
}

我该如何解决?

非常感谢您。

【问题讨论】:

  • array_column($countries, "userscnt", "country_code");

标签: php mysql arrays resultset


【解决方案1】:

你可以修改你的while循环

$countries[$nodes_country_set['country_code']] = $nodes_country_set['userscnt'];

【讨论】:

    【解决方案2】:

    你也可以像这样修改你的数组:

    $result = [];    
        array_walk($data,function($v,$k)use (&$result){
            $result[$v['country_code']] =  $v['userscnt'];
        });    
    print_r($result);
    

    输出:

    Array
    (
        [US] => 727
        [UY] => 53
        [VC] => 4
    )
    

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2012-01-20
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多