另一个php数组循环问题
我一直在为这件事奋斗,好像永远 我有一个数组:另一个php数组循环问题,php,arrays,loops,multidimensional-array,Php,Arrays,Loops,Multidimensional Array,我一直在为这件事奋斗,好像永远 我有一个数组: $url_array 它包含以下信息: Array ( [ppp] => Array ( [0] => stdClass Object ( [id] => 46660 [entity_id] => 0 [redirect_url] => http://www.google.com [type] => Image
$url_array
它包含以下信息:
Array (
[ppp] => Array (
[0] => stdClass Object (
[id] => 46660
[entity_id] => 0
[redirect_url] => http://www.google.com
[type] => Image
)
[1] => stdClass Object (
[id] => 52662
[entity_id] => 0
[pixel_redirect_url] => http://www.yahoo.com
[type] => Image
)
[2] => stdClass Object (
[id] => 53877
[entity_id] => 0
[redirect_url] => http://www.msn.com
[pixel_type] => Image
)
)
[total_count] => 3
)
我需要遍历它,并对每个变量进行处理。我可以让它工作:
foreach ($piggies_array as $key => $value) {
$id = $value[0]->id;
$redirect_url = $value[0]->redirect_url; }
不出所料,它只是回显了这些变量的第一个值,但无论我尝试什么,我都无法让它循环:
$value->redirect_url;
$value=>redirect_url;
我将非常感谢您的帮助。这应该可以做到:
foreach ($url_array['ppp'] as $key => $object) {
echo $object->redirect_url;
}
您需要在数组中循环两次
foreach($piggies as $piggy) {
foreach($piggy as $key=>$value) {
$id = $value->id;
$redirect_url = $value->redirect_url;
}
}
您的doing$id=$value[0]->id将只对0元素执行stations 你需要上厕所
for($i = 0; $i < count($piggies_array['ppp']); $i++)
{
$id = $value[$i]->id;
$redirect_url = $value[$i]->redirect_url;
}
for($i=0;$iid;
$redirect\u url=$value[$i]->redirect\u url;
}
通过调用$value[0]
您的数组包含另一个数组。您只需要第二个数组中的第一个项目。您需要两个循环,不要忘记值可能不是数组:
foreach ($piggies as $var)
{
if (is_array($var))
{
foreach ($var as $obj)
{
echo $obj->redirect_url;
}
}
else
{
echo $var;
}
}
上面的(未测试)将输出每个URL,还将输出第一个数组的总计数项。您正在迭代数组的第一个维度,该维度只有
“ppp”
元素。检查您的代码,您将看到,当您有3个元素时,实际上您正在请求数组的第一个元素
您需要做的是,迭代到对象数组中($url\u array[“ppp”]
)
当您对实际迭代的内容有疑问时,开始调试的一个好方法是打印每个迭代步骤。如果您使用发布的示例执行此操作,您将看到:
Array( [0] => stdClass [...], [1] => stdClass [...] ... )
这样做:
foreach ($piggies_array as $key => $value) {
var_dump($value);
}
看看这个,你会自动发现你的问题是什么。因此,将其更改为:
foreach ($piggies_array['ppp'] as $key => $value) {
var_dump($value);
}
您将得到您想要的结果:
Object ( id: ... )
Object ( id: ... )
Object ( id: ... )
祝你好运 这样循环(假设$piggies\u array
与您转储的$url\u array
相同):
请注意,因为“ppp”数组中的某些项目没有属性redirect\u url(第二个项目有一个pixel\u redirect\u url属性)。您是通过
$url\u数组
还是通过$url\u数组['ppp']
?最好的解决方案,只有一个循环。谢谢。1个循环对我有效,对于其他帖子,我知道哪里出了问题。
foreach ($piggies_array['ppp'] as $key => $value) {
$id = $value->id;
$redirect_url = $value->redirect_url;
}