Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php数组/对象中转换和存储sql结果_Php_Mysql_Arrays - Fatal编程技术网

如何在php数组/对象中转换和存储sql结果

如何在php数组/对象中转换和存储sql结果,php,mysql,arrays,Php,Mysql,Arrays,我有一个SQL数据,看起来像这样 |username|FinalState|Duration | |user1 |Status1 |00:02:13.747 | |user1 |Status2 |00:00:20.027 | |user1 |Status3 |00:00:10.818 | |user1 |Status4 |00:00:00.000 | |user2 |Status1 |00:49:59.945 | |user

我有一个SQL数据,看起来像这样

|username|FinalState|Duration       |
|user1   |Status1   |00:02:13.747   |
|user1   |Status2   |00:00:20.027   |
|user1   |Status3   |00:00:10.818   |
|user1   |Status4   |00:00:00.000   |
|user2   |Status1   |00:49:59.945   |
|user2   |Status2   |00:18:18.248   |
|user2   |Status5   |00:00:00.450   |
我需要将其转换为一个PHP数组/对象,使其看起来像这样

$data["user1"] = [status1 => 00:02:13.747 , status2 => 00:00:20.027 .... ]
$data["user2"] = [status1 => 00:49:59.945 , status2 => 00:18:18.248 .... ] 

问题是FinalState对于用户来说是一个不同的组合

假设您检索了所有数据,那么现在您有一个数组:

$arr = array(["username" => "user1", "FinalState" => "Status1", "Duration" => "00:02:13.747"], ["username" => "user1", "FinalState" => "Status2", "Duration" => "00:00:20.027"], ...);
您可以使用简单的全选并使用FETCH\U data\U ASSOC标志来获取此数据

现在,您只需要简单的foreach循环,如下所示:


这是一个活生生的例子:

你试过什么?我的一般建议是自己迭代并构建数组。上一次我做类似的事情是迭代所有的值。但在本例中,状态列可能会更改,而在我之前的尝试中,状态为fixed values.Awesome。这起作用了。我上一次做类似的事情是迭代每个数组,这不是最好的方法。非常感谢。
foreach($arr as $e) {
    $data[$e["username"]][$e["FinalState"]] = $e["Duration"];
}