如何解决遍历数组的非数字索引
认为我缺少一个基本概念。我想通过遍历一些不同的数据数组来生成html。他们不使用数字作为索引,因此数字循环不起作用。我也不知道如何在这里使用foreach()
。如果索引不是数字,如何遍历$price
和$description
?
样品:
$traverser= 0;
while($traverser < $number_of_records)
{
print $traverser . \" - \" . $price[$traverser] . \"<br />\";
print $description[$traverser];
$traverser++;
}
数组结构的部分样本:
object(phpQueryObject)#2799 (13) { [\"documentID\"]=> string(32) \"1d62be942498df890cab4ccb78a007a2\" [\"document\"]=> &object(DOMDocument)#3 (0) { } [\"charset\"]=> &string(5) \"utf-8\" [\"documentWrapper\"]=> &object(DOMDocumentWrapper)#2 (17) { [\"document\"]=> &object(DOMDocument)#3 (0) { } [\"id\"]=> string(32) \"1d62be942498df890cab4ccb78a007a2\" [\"contentType\"]=> string(9) \"text/html\" [\"xpath\"]=> &object(DOMXPath)#4 (0) { } [\"uuid\"]=> int(0) [\"data\"]=> array(0) { } [\"dataNodes\"]=> array(0) { } [\"events\"]=> array(0) { } [\"eventsNodes\"]=> array(0) { } [\"eventsGlobal\"]=> array(0) { } [\"frames\"]=> array(0) { } [\"root\"]=> &object(DOMElement)#5 (0) { } [\"isDocumentFragment\"]=> &bool(true) [\"isXML\"]=> bool(false) [\"isXHTML\"]=> bool(false) [\"isHTML\"]=> bool(true) [\"charset\"]=> &string(5) \"utf-8\" } [\"xpath\"]=> &object(DOMXPath)#4 (0) { } [\"elements\"]=> array(560) { [0]=> object(DOMElement)#2239 (0) { } [1]=> object(DOMElement)#2240 (0) { } [2]=> object(DOMElement)#2241 (0) { } [3]=> object(DOMElement)#2242 (0) { } [4]=> object(DOMElement)#2243 (0) { } [5]=> object(DOMElement)#2244 (0) { } [6]=> object(DOMElement)#2245 (0) { } [7]=> object(DOMElement)#2246 (0) { } [8]=> object(DOMElement)#2247 (0) { }
解决方法
由于看起来您也需要数组键,因为您要引用多个不同的数组,所以您希望
foreach
的$a as $k => $v
语法:
foreach($description as $key => $desc)
{
print $key . \" - \" . $price[$key] . \"<br />\";
print $desc;
}
,您可以拍摄自己的照片,以了解如何迭代它们:
<?php
$ary = array( // demo array
\'apple\' => \'Apple\',\'orange\' => \'Orange\',\'grape\' => \'Grape\'
);
// show the structure
var_dump($ary); echo \"\\r\\n\";
// use a foreach with the key and value
foreach ($ary as $key => $val)
printf(\"%s => %s\\r\\n\",$key,$val);
echo \"\\r\\n\";
// just get the raw keys
$keys = array_keys($ary);
var_dump($keys); echo \"\\r\\n\";
输出:
array(3) {
[\"apple\"]=>
string(5) \"Apple\"
[\"orange\"]=>
string(6) \"Orange\"
[\"grape\"]=>
string(5) \"Grape\"
}
apple => Apple
orange => Orange
grape => Grape
array(3) {
[0]=>
string(5) \"apple\"
[1]=>
string(6) \"orange\"
[2]=>
string(5) \"grape\"
}
总是有array_map
和array_walk
。
,我不确定是否有问题,但这确实很简单:
<?php
$array = array(\'foo\',\'bar\');
foreach ($array as $element) {
echo \"{$element}\\n\";
}
这应该输出\“ foo \”和\“ bar \”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。