PHP:Foreach数组不会输出

时间:2013-02-18 08:29:06

标签: php arrays loops foreach

当我转储变量时,它有一个数据:

  

的var_dump($结果);

     

object(stdClass)#2(5){[“user_id”] => string(1)“1”[“username”] => string(6)“user_name”[“email”] => string(14)“test@mail.com”[“password”] => string(32)“password”[“test”] => string(1)“1”}

但是当我使用foreach时,没有值返回,除非我只是回显$ data;但我想具体到我想要的价值。

  

foreach($ result as $ data){

     

echo $ data-> use_id;

     

echo $ data-> username;

     

}

为什么没有返回值?

3 个答案:

答案 0 :(得分:0)

您无需迭代对象。就这样做。

echo $result->user_id;
echo $result->username;

根据您提供的示例,您将$result中的每个属性视为对象,并查找user_iduser_name(不存在)。

答案 1 :(得分:0)

正如你所写:

var_dump($result);
object(stdClass)#2 (5) { ["user_id"]=> string(1) "1" ["username"]=> string(6) "user_name" ["email"]=> string(14) "test@mail.com" ["password"]=> string(32) "password" ["test"]=> string(1) "1" }

所以结果就是一个对象本身。所以如果你想要指定和获取精确变量,就没有必要迭代它了!

答案 2 :(得分:0)

试试这个:json_decode将json字符串转换为数组。参考:http://php.net/manual/en/function.json-decode.php

$array  = json_decode($result, true);

echo "<pre>";
print_r($array);

您可以将foreach用于$array并回显结果。