Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 从数组中回显一个值_Php_Arrays_Echo - Fatal编程技术网

Php 从数组中回显一个值

Php 从数组中回显一个值,php,arrays,echo,Php,Arrays,Echo,我从product表中选择了一组产品ID和产品名称。我试图从数组中只回显一个产品名称,但得到的只是产品名称的第一个字母。下面是我的代码。提前谢谢你的提示 $info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id = :id ORDER BY `productname` ASC "); $info1 ->bindParam(':id', $sessionid , PD

我从product表中选择了一组产品ID和产品名称。我试图从数组中只回显一个产品名称,但得到的只是产品名称的第一个字母。下面是我的代码。提前谢谢你的提示

$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id  =     :id  ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();

while ($userinfo1 = $info1->fetchobject()) {

$productid = "$userinfo1->productid";
$productname = "$userinfo1->productname";

}

echo $productname[0];

将括号添加到while循环内的变量以创建数组

while ($userinfo1 = $info1->fetchobject()) {

 $productid[] = "$userinfo1->productid";
 $productname[] = "$userinfo1->productname";

}

echo $productname[0];//this will print the first productname
我认为最好只制作一个对象数组

$array=array();
while ($userinfo1 = $info1->fetchobject()) {
   $array[] = $userinfo1;
}

echo $array[0]->productname;

而不是这样做:

$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id  =     :id  ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();

while ($userinfo1 = $info1->fetchobject()) {

$productid = "$userinfo1->productid";
    $productname = "$userinfo1->productname";

    }

    echo $productname[0];
这样做:

$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id  =     :id  ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();
$counter =0;
while ($userinfo1 = $info1->fetchobject()) {
$productid[] = "$userinfo1->productid";
$productname[] = "$userinfo1->productname";
echo $productid[counter];
echo $productname[counter];
counter++;
}

通过这种方式,您将回显数组的每个值

您可以使用各种选项。例如,您可以创建一个关联数组,如下所示:

while ($userinfo1 = $info1->fetchobject()) {

 $productid[] = "$userinfo1->productid";
 $productname[] = "$userinfo1->productname";

}

echo $productname[0];//this will print the first productname
$items = array();
while ($userinfo1 = $info1->fetchobject()) {
    $item = array(
        'productid' => $userinfo1->$productid,
        'productname' => $userinfo1->$productname
    );
    array_push($items, $item);
    // or you could use native
    // $uitems[] = $item;
}
这将为您提供一个数组(
$users
),您可以循环并获取集合索引:

foreach($items as $item) {
    print_r($item); // prints the whole user item.
    //print $item['productid']; /* or even print the users product id.*/
}
或者对于您要求的一个项目来说很简单:

echo $items[0]['productid'];

或者:如果您想要单独的数组,您可以按照其他答案中的说明进行操作:

while ($userinfo1 = $info1->fetchobject()) {

 $productid[] = "$userinfo1->productid";
 $productname[] = "$userinfo1->productname";

}

请阅读关于
fetch()
的手册,您希望它采用什么格式?您希望获得2D阵列吗?您看到的第一个字母是
$productname[0]
。变量
$productname
仅包含纯标量字符串,字符串上的索引
[0]
检索其第一个字符