【问题标题】:Reformat array result from php prepared statement从 php 准备好的语句重新格式化数组结果
【发布时间】:2013-08-06 04:15:20
【问题描述】:

我正在尝试以特定格式将数据输出到数组中,但我坚持使用 stmt->fetch 部分以使其以我需要的格式输出数组。

我必须更新的代码(从各种在线资源拼凑而成)

    private function get_results()  
{  
    $parameters = array();
    $results = array();

    $mysqli = new mysqli('localhost', $this->user, $this->pass, $this->db) 
    or die('Problem connecting to the database');

    $stmt = $mysqli->prepare($this->sql) or die('Problem preparing query, check SQL');  
    $stmt->execute();  

    $meta = $stmt->result_metadata();  

    while ( $field = $meta->fetch_field() ) {  

        $parameters[] = &$row[$field->name];

    }  

    call_user_func_array(array($stmt, 'bind_result'), $parameters);  

    while ( $stmt->fetch() ) {  
        $x = array();  
        foreach( $row as $key => $val ) {  
            $x[$key] = $val;  
        }  
        $results[] = $x;  
    }

    $mysqli->close();
    return $results;  
}

输出以下内容:

大批 ( [0] => 数组 ( [浇头] => 蘑菇 [切片] => 3 ) [1] => 数组 ( [浇头] => 橄榄 [切片] => 1 ) [2] => 数组 ( [浇头] => 洋葱 [切片] => 1 ) [3] => 数组 ( [浇头] => 意大利辣香肠 [切片] => 1 ) [4] => 数组 ( [打顶] => 西葫芦 [切片] => 2 ) )

但我希望它采用以下格式:

大批 ( [顶部] => 数组 ( [0] => 蘑菇 [1] => 橄榄 [2] => 洋葱 [3] => 意大利辣香肠 [4] => 小南瓜 ) [切片] => 数组 ( [0] => 3 [1] => 1 [2] => 1 [3] => 1 [4] => 2 ) )

我一直在努力实现这一目标,但我似乎无法理解它。任何帮助将非常感激!谢谢。

【问题讨论】:

    标签: php arrays mysqli prepared-statement


    【解决方案1】:

    像这样使用 array_merge_recursive()

    $ar1=array(array('topping'=>"Mushrooms",'slices'=>"3"),array('topping'=>"Olives",'slices'=>"4"));
    $res=array();
    foreach($ar1 as $temp)
    {
      $res=array_merge_recursive($res, $temp);
    }
    echo '<pre>';
    print_r($res);
    

    【讨论】:

      【解决方案2】:
      $keys = array_keys($arr[0]);
      array_unshift($arr, NULL);
      $arr = call_user_func_array('array_map', $arr);
      $arr = array_combine($keys, $arr);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 1970-01-01
        • 1970-01-01
        • 2017-03-26
        相关资源
        最近更新 更多