2016-01-29 95 views
1
$row = $overview_response->fetch_array(MYSQLI_NUM); 

返回下面的一个数组:mysqli的PHP数组索引

Array ([0] => 12 [1] => username [2] => email [3] => a53ccb24bfb1135eb45e675464f948 [4] => Test message [5] => 1 [6] => Test subject [7] => 2016-01-29 15:35:02) 

我怎么可能访问参数,如唯一的用户名?

之前一直在测试如下:

foreach ($row as $key) { 
    echo $key[1]; 
} 
+1

使用FETCH_ASSOC得到一个更易于管理的阵列,那么你应该能够做到$阵列[“用户名”]; –

+0

echo $ row [1]; ?? – devpro

+0

@ BlakeA.Nichols明白了:) – stackxquestion

回答

0

$row是一个数组,因此您可以通过使用foreach()值走。 但是,数组的值不是数组。

所以此命令echo $key[1]无效,因为它试图访问$key的第一个元素,但$key是一个字符串。

您可以使用喜欢的事,让你的价值观:

$id = $row[0]; 
$username = $row[1]; 
// and so on 
+0

现在我只剩下一个问题了,我以为row会包含每个mysql元素。我怎么能运行每个数组值的每个返回的数组索引的命令? – stackxquestion

+0

https://gyazo.com/8b73cf32838546bb8f4752b68c37fab4只有1个元素,但8个元素。而foreach实际上为每个值运行。 – stackxquestion

+0

我的答案涵盖了“我如何访问参数”部分的问题,为什么它没有按照您尝试的方式工作。没有得到正确的查询结果是另一个问题。 – RST

0

您的代码

$row = $overview_response->fetch_array(MYSQLI_NUM); 

返回到你的数组。您可以通过索引访问数组中的键。我想username是关键1

$row = $overview_response->fetch_array(MYSQLI_NUM); 
var_dump($row[1]); 

这是simpliest方式的价值。

其他方式可以使用MYSQLI_ASSOC不变,这将返回,而不是数字键字符串键:

$row = $overview_response->fetch_array(MYSQLI_ASSOC); 
var_dump($row); 
// after that you can still access username by key, 
// but now it will be the name of a corresponding field 
var_dump($row['username']); // if field is called `username`