我用google搜索无济于事我错过了一些根本无法看到它的东西。
我有以下数组
$this->links = array (
0 =>
array (
'url' => 'http://maps.doc.govt.nz/Viewer/Index.html?viewer=rwa',
'text' => 'DOC maps: Discover the outdoors ',
),
1 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' ',
),
2 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' Book Great Walks, selected huts, campsites and more. ',
),
3 =>
array (
'url' => 'https://careers.doc.govt.nz/jobtools/jncustomsearch.searchResults?in_organid=18174&in_searchBut=Search',
'text' => 'Jobs at DOC ',
),
4 =>
array (
'url' => 'http://blog.doc.govt.nz/',
'text' => ' Conservation blog ',
)....
我试图用这个
循环它foreach ($this->links as $arrayId)
{
print "Link {\n";
foreach ($arrayId as $linktitle=>$linkdetail)
{
echo 'link: -'.$linktitle .'<br/> bit'.$linkdetail;
}
}
但我收到警告:为foreach()错误提供的参数无效。我真的不知道为什么它不工作,我也尝试过我能想到的每一个变化?仍然得到同样的错误?
UPDATE我转储变量,$ links被描述为一个数组但是当我添加一个is_array条件时它返回false ??????
var_dump($links);
- string 'array (
0 =>
array (
'url' => 'http://www.iana.org/domains/example',
'text' => 'More information... ',
if (is_array($links))
{
echo "Its an array";
} - does not return
答案 0 :(得分:1)
您的$this->links
是一个字符串。你需要它成为一个数组。如果您无法更改是生成它的数组,您可以尝试以下方法。我不建议使用eval()
,它必须仅作为最后的手段使用。
$alinks=array();
eval('$alinks='.$this->links.';');
foreach ($alinks as $arrayId)
{
print "Link {\n";
foreach ($arrayId as $linktitle=>$linkdetail)
{
echo 'link: -'.$linktitle .'<br/> bit'.$linkdetail;
}
}
警告: eval()
语言构造非常危险,因为它允许执行任意PHP代码。 因此不鼓励使用。如果您仔细确认除了使用此构造之外没有其他选择,请特别注意不要将任何用户提供的数据传递到其中事先正确验证它。
答案 1 :(得分:0)
代码看起来不错,但是生成$ this-&gt;链接值的代码可能会错误地执行此操作。尝试在第一个foreach之前执行print_r或var_dump $ this-&gt;链接,然后在第二个foreach之前对$ arrayId执行相同操作,它可能会显示导致问题的原因。我唯一能想到的是$ this-&gt;链接实际上并不是一个数组,因为以前没有为它生成数据或正确分配它。
答案 2 :(得分:0)
删除 $ this ,因为egig已经提到过,如果您没有使用课程并尝试以下内容:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors', 0);
$links = array (
0 =>
array (
'url' => 'http://maps.doc.govt.nz/Viewer/Index.html?viewer=rwa',
'text' => 'DOC maps: Discover the outdoors ',
),
1 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' ',
),
2 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' Book Great Walks, selected huts, campsites and more. ',
),
3 =>
array (
'url' => 'https://careers.doc.govt.nz/jobtools/jncustomsearch.searchResults?in_organid=18174&in_searchBut=Search',
'text' => 'Jobs at DOC ',
),
4 =>
array (
'url' => 'http://blog.doc.govt.nz/',
'text' => ' Conservation blog ',
)
);
foreach ($links as $arrayId)
{
print "Link {\n";
foreach ($arrayId as $linktitle=>$linkdetail)
{
echo 'link: -'.$linktitle .'<br/> bit'.$linkdetail;
}
}
?>
答案 3 :(得分:0)
试试这个
<?php
$this->links = array (
0 =>
array (
'url' => 'http://maps.doc.govt.nz/Viewer/Index.html?viewer=rwa',
'text' => 'DOC maps: Discover the outdoors ',
),
1 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' ',
),
2 =>
array (
'url' => 'https://booking.doc.govt.nz/',
'text' => ' Book Great Walks, selected huts, campsites and more. ',
),
3 =>
array (
'url' => 'https://careers.doc.govt.nz/jobtools/jncustomsearch.searchResults?in_organid=18174&in_searchBut=Search',
'text' => 'Jobs at DOC '
));
echo "<pre>";
for($i=0;$i<=count($this->links)-1;$i++)
{
foreach($this->links[$i] as $value)
{
print_r($value);
echo "<br>";
}
}
?>